Как передать переменную javascript, которая появилась из опции выбора в переменную PHP? Я хочу установить переменную PHP в зависимости от выбора пользователя.
Я пробовал этот код:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$(function(){
$("select[name='sex']").change(function () {
var submitSearchData = jQuery('#extended-search').serialize();
var selectedValue=$('#sex').val();
jQuery.ajax({
type: "POST",
data: 'selected=' + selectedValue
url: "ajax.php",
success: function () {
// alert(submitSearchData);
alert(selectedValue);
}
});
});
});
</script>
<form id="extended-search" >
<div class="input-container">
<select class="select" name="sex" id="sex">
<option value="0">All</option>
<option value="1">M</option>
<option value="2">F</option>
</select>
</div>
</form>
<?php
var_dump ($_REQUEST['selected']); //that print NULL don't know why!
?>
Вы передаете данные в неправильном формате. Данные передаются как объект. См. Ниже.
$("select[name='sex']").change(function () {
var submitSearchData = jQuery('#extended-search').serialize();
var selectedValue=$('#sex').val();
jQuery.ajax({
type: "POST",
data: {'selected': selectedValue},
url: "ajax.php",
success: function (response) {
// alert(submitSearchData);
alert(response);
}
});
});
console.log(selectedValue)
$ _REQUEST имеет значение null, поскольку он не связан с запросом ajax, который вы отправляете. Попробуйте это, например:
<?php
if (isset($_POST["selected"])) {
echo $_POST["selected"];
} else {
?>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<form id="extended-search">
<div class="input-container">
<select class="select" name="sex" id="sex">
<option value="0">All</option>
<option value="1">M</option>
<option value="2">F</option>
</select>
</div>
</form>
<script>
$(function() {
$("select[name='sex']").change(function () {
var selected = $(this).val();
$.ajax({
type: "POST",
data: {
selected: selected
},
url: "ajax.php",
success: function (data) {
alert(data);
}
});
});
});
</script>
</body>
</html>
<?php } ?>
РЕДАКТИРОВАТЬ:
Я обновил сценарий и протестировал его. У вас были некоторые ошибки в коде. Надеюсь, что это работает для вас.
Я надеюсь, что это поможет вам...
dataType: "html",
data: {'selected': selectedValue},
а затем вы можете получить его через массив $ _POST/$ _ REQUEST, так как вы задали свой тип для публикации.
Невозможно в одном и том же экземпляре времени:
yourfile → ajax → yourfile (вот значение, но вы не можете видеть это на своей текущей веб-странице, за исключением того, что вместо ajax, отправьте форму сообщения)