2015-12-07 43 views
0

因此,我一直在整天努力解決這個問題,似乎無法解決這個問題。 只要選擇下拉菜單中的選項,我就需要調用一個php查詢。如何從html選擇選項onChange調用php函數?

<select class="selectpicker" id="headSelector"> 
<?php 
    $cname = $_GET['cname']; 

$linkID = mysql_connect("localhost","USER","PASS"); 
mysql_select_db("USR", $linkID);    

$SQLCurr = "SELECT `AName` FROM `Char-Armor` WHERE `CName` = '$cname' AND `AType`= 'Head'"; 
$currHeadValues = mysql_query($SQLCurr, $linkID); 
$currRow = mysql_fetch_row($currHeadValues); 
$curr = $currRow[0]; 
if($curr == '' || $curr == NULL){ 
    $curr = 'None'; 
} 

$SQLHead = "SELECT AName FROM `Armor` WHERE AType = 'Head'"; 
$allHeadValues = mysql_query($SQLHead, $linkID); 
echo "<option>".$curr."</option>"; 
while($row = mysql_fetch_assoc($allHeadValues)){ 
    echo " 
     <option>".$row['AName']."</option> 
    "; 
} 
?> 
</select> 

php部分需要從選項中取'AName'並用它插入表中。

我已經做了很多關於AJAX的閱讀,但我不太明白它應該如何工作。我認爲它就像html - > js - > Ajax - > php

我需要它在選擇一個選項時保持在同一頁上。

任何解釋都會很棒,謝謝!

+2

把你的PHP在一個單獨的文件,然後使用AJAX給它的調用。 [這裏是基礎知識。](http://jayblanchard.net/basics_of_jquery_ajax.html) –

回答

1

這裏是你可以做什麼。

1)。只要選擇了一個選項,運行jquery onchange事件並獲取所選選項的值。

2)。現在,使用所選值的值運行ajax請求,並將此數據發佈到後端php文件。 3)。現在在這個後端php文件中,接收數據和進程(運行查詢)。

代碼示例。

以這種方式更改您的option行。

<option value="$row['AName']">".$row['AName']."</option> 

jQuery的阿賈克斯

$("#headSelector").change(function(e){ 
//get the value of the selected index. 
value = $(this).val(); 
//make an ajax request now 
$.ajax({ 
url: 'yourPhpBackendScript.php', 
type: 'POST', 
data: {value: value}, 
success:function(response) 
{ 
alert(response); 
} 
}) 
}) 

yourPhpBackendScript.php

//You can now receive the selected value as $_POST['value']; 
//get the value now 
$value = $_POST['value']; 
//you can apply validations if you want. 
//Now, run the query and send a response. Response can be a simple message like data submitted etc. So 
runQueryHere 

echo "inserted"; //response returned to ajax rquest 
+0

你能評論一個鏈接,可以解釋究竟是什麼AJAX。我發現的一切都是爲了讓我對事物有一個總體的瞭解。 –

0

首先,返回字符串像這樣:

$options_arr = ''; 
while($row = mysql_fetch_assoc($allHeadValues)){ 

     $options_arr .= "<option>".$row['AName']."</option> 
    "; 
} 

echo $options_arr; 

使用更改事件是這樣的:

$("#headSelector").change(function(){ 
    $.ajax({ 
     data: '', 
     url: 'your_url', 
     type: 'POST',//Or get 
     success: function(options_array){ 
      $("#headSelector").empty().append(options_str); 
     } 
    }); 
});