У меня возникли проблемы с добавлением значения элементов формы type="button"
в базу данных mySql, и мне интересно, не хватает ли я чего-то.
Изменить. Это не похоже на то, что информация для этого элемента передается из html в php, потому что она не отражает значение. Моя единственная проблема связана с этим одним элементом, и остальная часть формы отправляется должным образом.
Я использую это для онлайн-теста, который создает профиль пользователя на основе выбранных ими изображений, и я устанавливаю изображения в качестве фоновых изображений для элементов кнопки, и я пытаюсь сделать это в прямом html (в отличие от используя javascript вместе с переключателями или флажками).
<input type="button" name="quiz_start" value="jeans" style="background: url(files/start1.jpg) no-repeat; width:54px;height:140px; cursor:pointer; border:none; color: transparent; font-size : 0">
Я упростил PHP-код для запроса вопроса (включая указание идентификатора пользователя и ограничение его только на одно поле). Я также включил полный код ниже.
<?php //Start session & connect to database $user_id = 3; $qry = "INSERT INTO style(user_id, quiz_start) VALUES('$user_id','$_POST[quiz_start]')"; $result = @mysql_query($qry); header("location: page2.html"); exit(); ?>
Полный запрос:
$fieldlist=$vallist=''; foreach ($_POST as $key => $value) { $fieldlist.=$key.','; $vallist.='\''.($value).'\','; } $fieldlist=substr($fieldlist, 0, -1); $vallist=substr($vallist, 0, -1); $fieldlist.=', user_id'; $vallist.=','.$user_id; $setlist=''; foreach ($_POST as $key=>$value){ $setlist.=$key .'=\''.$value.'\','; } $setlist=substr($setlist, 0, -1); $result = mysql_query('UPDATE style SET '.$setlist.' WHERE user_id='.$user_id); if (mysql_affected_rows()==0) { $result = mysql_query('INSERT INTO style ('.$fieldlist.') VALUES ('.$vallist.')'); } header("location: page2.html"); exit(); ?>
Увидев, что вы не можете повторить $ _POST ['quiz_start'], это означает, что ваше значение на самом деле не установлено. Это происходит потому, что, когда вы используете кнопку класса, как в <input type='button'>
ваша форма фактически не представляется как <input type='submit'>
Одним из решений было бы изменить вашу кнопку на фактический файл отправки и формата, который … или вам нужно вызвать функцию javascript с помощью onClick с вашей кнопки, как показано на рисунке:
<input type="button" onClick="myfunction()">
Для справки о том, о чем я говорю, посмотрите этот пост .
Если, как вы говорите, остальные значения формы подаются в порядке, но только значение кнопки не работает, у вас есть несколько различных возможных решений в зависимости от ваших предпочтений.
<input type="button" onClick="myfunction()">
после чего <input type="button" onClick="myfunction()">
запрос на обновление в javascript. Попробуй это:
<?php //Start session & connect to database $user_id = 3; $qry = "INSERT INTO style(user_id, quiz_start) VALUES('".$user_id."','".$_POST['quiz_start']."')"; $result = @mysql_query($qry); header("location: page2.html"); exit(); ?>
Так как кажется, что тип ввода = «кнопка» не может захватить выбор пользователя, я хотел бы поделиться очень простым способом, который я решил сделать с помощью переключателей или флажков, используя только html.
Все, что вам нужно сделать, это установить элемент ввода в style="display:none"
и окружить как изображение, так и элемент ввода тегом метки, чтобы пользователи могли щелкнуть в любом месте изображения, чтобы выбрать элемент 🙂
<label for="quiz_start"> <img src="files/start1.jpg" /> <input style="display:none" type="radio" id="quiz_start" name="quiz_start" value="jeans"> </label>