2013-12-18 260 views
0

如何將來自select選項的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'])訪問所選變量時;它返回null – user3114378

+1

您在「selectedValue」之後錯過了「,」嗎? – mrmoment

回答

0

是不可能在同一時刻:

yourfile - > AJAX - > yourfile(這裏是價值,但你不能看到你的目前的網頁除了用ajax代替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爲空,因爲它與您發送的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」];從未設置! – user3114378

+0

您可以請幫忙:( – user3114378

+0

再次,'data:{selected:selected},' – SparK