使用php返回数据库查询中的数据的多个响应到jquery ajax

时间:2015-01-28 00:31:44

标签: javascript php jquery mysql ajax

我的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。真的需要帮助。感谢。

0 个答案:

没有答案