簡體   English   中英

javascript和PHP變量傳遞

[英]javascript and PHP variable passing

我有兩個選擇框,第二個選擇框的值取決於第一個選擇框。 因此,基本上我想做的是,當用戶在第一個選擇框上進行選擇后,它將把第一個選擇框的值存儲為變量。 然后,它將基於第一個選定的值查詢我的數據庫以填充第二個選擇框。 問題是,如何將第一個選擇框中的變量傳遞給PHP? 我讀過其他文章,人們說這是不可能的,但是如果是這樣,人們將如何做到這一點? AJAX?

如果我理解正確,那么是的,使用AJAX實際上是您的唯一選擇。

實際上,您可以使用AJAX調用類似“ getSelectionData.php?data =” + select1.value之類的方法,該方法將根據第一個選擇框中的選擇返回一個JSON數據數組。 然后,您解析數據並將其輸入到第二個選擇框中。

onchange事件偵聽器添加到第一個選擇框:

document.getElementById("select1").addEventListener("change", function(ev){
   var yourstoredvariable = this.value;
   someFunctionThatCallsAjax(yourstoredvariable);
}, true);

您將在第一個<select>上發生一個onchange事件,該事件將使用Ajax查詢具有選定<option>值的服務器,該值將返回<option>元素,並使用該元素填充第二個<select>元素。

問題是,如何將第一個選擇框中的變量傳遞給PHP?

我在這里沒問題。
通常,使用GET方法的普通html表單。
有什么大不了的?

如果我認為正確,則說明您使用的是Jquery。 因此,您可以這樣做:

$('#idOfSelectBox1').change(function(){
jQuery.ajax({
    type: "GET",
    url:"yourdomain.com/script.php",
    data:"selectBox:'"+$('#idOfSelectBox1').val()+"'",
    success:function(result){
        //do smth with the returned data
    }
});
});

在script.php中做您的魔術,並回顯您想要傳遞回js的內容

我假設您有一個“國家/城市”下拉列表,您可以通過兩種方式做到這一點,好的AJAX方法和壞的方法(刷新更改頁面),我將在jQuery中描述好的方法,或者至少看到它很好。

這是客戶端(即客戶端)代碼:

<select id="country">
  <option value="1">Canada</option>
  <option value="2">UK</option>
</select>
<select id="city" disabled="disabled"></select>
<script type="text/javascript">
  $('#country').change(function(){
      $('#city').load('/ajax-city.php', {id: $(this).val()});
  });
</script>

這是ajax-city.php代碼(服務器):

<?php
$countryId = $_REQUEST['id'];
$cities = array(); // Get it from db, using mysql_query or anything you want to use
foreach($cities as $city) {
  echo "<option id=\"{$city['id']}\">{$city['name']}</option>";
}

PS。 您將需要在HTML代碼中包含jQuery,並且當然將這兩個文件放在同一目錄中(或更改$ .load路徑)。

這個特定的代碼未經測試,我已經編寫了。 但這通常對我來說很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM