所以我整天都在努力解决这个问题,似乎无法解决这个问题。 每当选择下拉菜单中的选项时,我都需要调用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部分需要采取&#39; AName&#39;从选项中使用它并插入表格。
我已经做了很多关于AJAX的阅读,但我不太明白它是如何工作的。我认为这就像html - &gt; js - &gt; Ajax - &gt; PHP
当选择一个选项时,我需要它保持在同一页面上。
任何解释都会很棒,谢谢!
答案 0 :(得分:1)
这是你可以做的。
1)。选择一个选项后,运行jquery onchange
事件并获取所选选项的值。
2)。现在,使用所选值的值运行ajax请求,并将此数据发布到后端php文件。
3)。现在在这个后端php文件中,接收数据和进程(运行查询)。
代码示例。
以这种方式更改option
行。
<option value="$row['AName']">".$row['AName']."</option>
的jQuery的Ajax
$("#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
答案 1 :(得分: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);
}
});
});