2014-11-01 53 views
0

我在onchange事件中遇到了一些麻煩。該任務是用於排序數據的大部分代碼,但試圖通過隔離代碼將其追蹤到onchange事件並不實際工作,我不能看到什麼是錯誤的。使用帶有下拉列表選擇框的onchange

<?php include("db_connect.php"); 

$query = 'SELECT * FROM db_class_catagories'; 
$result = mysqli_query($dbconnection,$query); 
?> 


<select id="primary_catagory" name="primary_catagory" onchange = "test_function(this)"style="position:absolute;left:10px;top:10px;width:315px;height:20px;z-index:11;text-align:left;"> 
<option value=''>Select</option> 
<?php while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)){ 
    echo "<option value='" . $row['primary_catagory'] . "'>" . $row['primary_catagory'] . "  
</option>";} 
?> 
</select> 

<?php 
function test_function($primary_catagory) { 
echo $primary_catagory; 
} 
?> 

這個名單正在從數據庫中生成和被稱爲非常清楚,但不管我選擇什麼都不會發生。主要腳本使用AJAX,但再次沒有發生,我所能想到的是onchange不發送數據。

我用這個例子,但不可能得到它的工作。 How can i populate a dropdown list by selecting the value from another dropdown list

我的任務是或多或少相同,但東西是不正確與我平變化,任何想法愚蠢的事情我在想念着什麼呢?感謝

回答

2

onchange事件是瀏覽器事件,所以test_function()必須是一個JavaScript函數。它可以使用Ajax將關於選擇的信息發送給服務器端的PHP偵聽器,但必須在客戶端處理事件onchange

有一個簡單的例子在這裏:Why am I not getting the value from onChange with Select?只要把你的Ajax調用其中的警報(在答案,而不是問題)

1

好,test_function是PHP的服務器上,並onchange是在客戶端/瀏覽器。他們不能直接對話。

嘗試增加一些JavaScript(和jQuery)到HTML頁面。

<script> 
function test_function(e) { 
    $.getJSON("server.php", { 
     "action": "save", 
     "val": $(e.currentTarget).val() 
    } 
} 
</script> 

現在點動事件會執行這個javascript函數,它會在後臺加載該server.php頁面。

(這是未測試的代碼)