我的html页面有两个选择框。让我们说第一个选择框包含用户可以选择值的年份值(例如2013年,2014年,2015年等)。
对于我的第二个选择框,它必须依赖于第一个选择框,并且将填充与使用php中的数据库查询匹配年份的值(即.. WHERE年=' $ year')来自我的第一个选择框就是这样的。
现在,我想使用 JQuery Ajax 将请求发送到我的php脚本中以执行对我的数据库的一些查询,并且必须返回来自查询结果的所有数据:
selectPeriod.php
$rci_date = $_POST['r_date1']; // year selected from my form
$s1 = mysql_query("SELECT DISTINCT issue_date FROM issue_details WHERE
account_type='SPHERE' AND
issue_type = 'ci' AND
year(issue_date) = year('$rci_date') ORDER BY issue_date DESC ");
while($row = mysql_fetch_array($s1)) {
$db_issueDate = $row['issue_date']; // return this data
}
在我的jquery中,这应该接受我的php中的数据,这是查询的结果,并使用此值重新填充我的第二个选择框。就像这样,但这不是我想要的,因为查询在我的html页面上,只有没有jquery的静态,并且没有用户交互到我的第一个选择框:
<select name="mds-trust-date" id="mds-trust-date">
<option value="">Select by period</option>
<?php
$s1 = mysql_query("SELECT DISTINCT issue_date FROM issue_details
WHERE account_type='MDS-TRUST'
AND issue_type = 'ci' AND
year(issue_date) = year('$db_currentDate')
ORDER BY issue_date DESC");
while($row = mysql_fetch_array($s1)) {
$db_issueDate = $row['issue_date'];
echo '<option value=' . $db_issueDate . '>' . $db_issueDate . '</option>';
}
?>
</select>
我为我的jquery ajax尝试了这个代码,但是这有什么问题:
var r_date = $("#rci_date").val(); // get value from selectbox1
// Value to pass
var dataString = 'r_date1='+ r_date;
$.ajax({
type: "POST",
dataType: 'json',
url: "functions/ajaxSelect-period.php",
data: dataString,
cache: false,
success: function(response){
alert(response.a); // just a confirmation, not repopulating second selectbox
}
});
在我的php中,我做了类似的事情。
<?php
// query to database
...
$array = array();
while($row = mysql_fetch_array($s1)) {
$array[] = $row['issue_date'];
}
// response
echo json_encode($array, JSON_FORCE_OBJECT);
?>
但这对jquery没有回应。请帮我纠正我的代码,以及如何设置使用我的jquery响应的数据重新填充我的第二个选择框。我是一个新的蜜蜂到jquery。真的需要帮助。感谢。