Переключатели (пол и уровень), показывающие «неопределенное» при нажатии кнопки «Отправить» Я использую jQuery Mobile Framework. Другие поля с type=text
работают нормально. Как вставить значение в бэкэнд для этих переключателей? Должен ли я установить значение явно в PHP? (т.е. if$_POST['gender'] == 'male'
)
Каким-то образом $ _POST ['пол'] и $ _POST ['уровень'] не определяют переменную. Работает только при наличии только 1 переключателя.
<form action="save.php" method="post">
<label for="name">Name </label>
<input id="name" type="text" name="name"/>
<label for="city">City </label>
<input id="city" type="text" name="city"/>
<label for="lang_know">Language </label>
<input id="lang_know" type="text" name="language"/>
<div data-role="fieldcontain">
<label for="lang_level">Level</label>
<fieldset id="lang_level" data-role="controlgroup" data-type="horizontal">
<label for="okay">Okay</label>
<input type="radio" id="okay" name="level" value="okay"/>
<label for="good">Good</label>
<input type="radio" id="good" name="level" value="good"/>
<label for="great">Great</label>
<input type="radio" id="great" name="level" value="great"/>
</fieldset>
</div>
<div data-role="fieldcontain">
<label for="gender">Gender</label>
<fieldset id="gender" data-role="controlgroup" data-type="horizontal">
<label for="male">Male</label>
<input type="radio" id="male" name="gender" value="male"/>
<label for="female">Female</label>
<input type="radio" id="female" name="gender" value="female"/>
</fieldset>
</div>
<label for="age">Age </label>
<input id="age" type="number" min=18 max=90 name="age"/>
<input type="submit" value="Update"/>
</form>
Save.php
<?php
try{
$name = $_POST['name'];
$city = $_POST['city'];
$language = $_POST['language'];
$level = $_POST['level'];
$gender = $_POST['gender'];
$age = $_POST['age'];
$email = "lapm@gmail.com";
$connection = new PDO ('mysql:host=localhost;dbname=tongue', 'web', 'lapming1');
$connection -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$connection -> setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
function save ($query, $email, $connect, $name, $city, $language, $level, $gender, $age) {
$statement = $connect->prepare($query);
$statement -> bindParam(':email',$email, PDO::PARAM_STR, 127);
$statement -> bindParam(':name', $name, PDO::PARAM_STR, 127);
$statement -> bindParam(':city', $city, PDO::PARAM_STR, 127);
$statement -> bindParam(':language', $language, PDO::PARAM_STR, 127);
$statement -> bindParam(':level', $level, PDO::PARAM_STR, 127);
$statement -> bindParam(':gender', $gender, PDO::PARAM_STR, 127);
$statement -> bindParam(':age', $age, PDO::PARAM_STR, 127);
$statement -> execute();
}
$sql = 'UPDATE user
SET name=:name, city=:city, language=:language, level=:level, gender=:gender, age=:age
WHERE email=:email';
$save = save ($sql, $email, $connection, $name, $city, $language, $level, $gender, $age);
header ('Location:profile.php');
$connection = null;
} catch(PDOException $e) {
echo $e->getMessage();
};
?>