2013-12-18 5 views
0

Как передать переменную javascript, которая пришла из опции выбора в переменную PHP? Я хочу установить переменную PHP в зависимости от выбора пользователя.
Я попробовал этот код:Присвоить переменную javascript переменной 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']); it return null – user3114378

+1

Вы пропустили "," после "selectedValue"? – mrmoment

ответ

0

не представляется возможным в том же момент времени:

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

+0

Есть ли другие решения? – user3114378

+0

@ user3114378: см. Решение выше в моем ответе. –

+0

@ignacio, не могли бы вы объяснить больше? – user3114378

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 не знает почему! – user3114378

+0

Вы проверили вывод 'console.log (selectedValue)' –

0

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

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

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

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

EDIT:

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

+0

, но это тоже не печатает значение выбранного параметра. echo $ _POST ["selected"]; никогда не устанавливается! – user3114378

+0

Не могли бы вы помочь: ( – user3114378

+0

еще раз, 'данные: {selected: selected},' – SparK

Смежные вопросы