Присвойте переменную javascript переменной php

0

Как передать переменную 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!
?>
  • 0
    И в чем проблема. Есть ли ошибка?
  • 0
    Когда я пытаюсь получить доступ к выбранной переменной с помощью var_dump ($ _REQUEST ['selected']); это возвращает ноль
Показать ещё 1 комментарий
Теги:
codeigniter

4 ответа

1

Вы передаете данные в неправильном формате. Данные передаются как объект. См. Ниже.

 $("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);
    }
   });
});
  • 0
    Все еще не могу получить доступ к выбранной переменной в моем файле PHP. var_dump ($ _REQUEST ['selected']); // что печать NULL не знаю почему!
  • 0
    Вы проверяли вывод console.log(selectedValue)
0

$ _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 } ?>

РЕДАКТИРОВАТЬ:

Я обновил сценарий и протестировал его. У вас были некоторые ошибки в коде. Надеюсь, что это работает для вас.

  • 0
    спасибо, но это не печатает значение выбранной опции тоже. echo $ _POST ["selected"]; никогда не устанавливается!
  • 0
    Не могли бы вы помочь: (
Показать ещё 2 комментария
0

Я надеюсь, что это поможет вам...

dataType: "html",
data: {'selected': selectedValue},

а затем вы можете получить его через массив $ _POST/$ _ REQUEST, так как вы задали свой тип для публикации.

0

Невозможно в одном и том же экземпляре времени:

yourfile → ajax → yourfile (вот значение, но вы не можете видеть это на своей текущей веб-странице, за исключением того, что вместо ajax, отправьте форму сообщения)

  • 0
    Есть ли другие решения?
  • 0
    @ user3114378: см. решение выше в моем ответе.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню