2011-09-10 204 views
0

我有兩個選擇框,第二個選擇框值取決於第一個選擇框。所以基本上我想要做的是在用戶在第一個選擇框上進行選擇之後,它會將第一個選擇框的這個值存儲爲一個變量。然後它會根據第一個選定的值查詢我的數據庫來填充第二個選擇框。問題是,如何將第一個選擇框中的var傳遞給PHP?我讀過其他文章,人們說這是不可能的,但如果是這樣,那麼人們怎麼做呢? AJAX?JavaScript和PHP變量傳遞

+1

顯然它*不是*不可能的。 (誰寫這樣的廢話?你有鏈接嗎?) – Tomalak

+0

然後如何可能 – aherlambang

+0

你之前預訂過機票嗎?我認爲大多數預訂網站都是這樣做的 - 選擇一個國家後,重新加載第二個列表。這是你在找什麼? – ajreal

回答

0

我假設你有一個國家/地區的下拉列表中,你可以以兩種方式做,一種是好的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路徑)。

這個特定的代碼沒有經過測試,我剛寫過它。但通常這對我來說很好。

3

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

1

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

1

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

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

您將有第一<select>一個onchange事件,將使用Ajax與所選<option>的值將返回查詢服務器<option>元素,用於填充第二個元素<select>

0

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

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

0

如果我看到正確,您使用的是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的