使用php mysql ajax动态更新选择框

时间:2013-05-25 20:29:42

标签: php mysql ajax

我正在尝试通过php填充mysql结果的初始选择框。然后,我希望第二个选择框更新,其中包含与第一个框中所选内容相关的其他信息。

这里我选择了一些广告系列名称,然后在第二个框中我想用mysql中存储的广告系列版本进行更新。

这是名称脚本:

<html>
<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js">  </script>
    <script type="text/javascript" src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

    <script type="text/javascript">
        $(document).ready(function(){
            $("#campaign").change(function(){
                 var campaign = $("#campaign").val();
                 $.ajax({
                    type:"post",
                    url:"getversion.php",
                    data:"campaign="+campaign,
                    success: function(data) {
                      $("#version").html(data);
                    }
                 });
            });
       });
    </script>
 </head>
 <body>

    Campaign :
    <select name="campaign" id="campaign">
      <option>-Select a Campaign-</option>
    <?php 
    include "db_conn.php"; 
    $result = mysql_query("SELECT campaign, time FROM dfa_data GROUP BY campaign");
    while($row = mysql_fetch_array($result)){

    echo "<option value=$row[campaign]>$row[campaign]</option>";

    } ?>
    </select>


    Version :
    <select name="version" id="version">
        <option>-Select a Version-</option>
    </select>
  </body>
</html>

然后有另一个脚本拉入第二个选择框数据,虽然它没有填充,我不知道为什么。

<?php
include "db_conn.php";

$campaign = $_POST["campaign"];

$result = mysql_query("SELECT * FROM dfa_data where campaign='$campaign' GROUP BY time");
   while($rowa = mysql_fetch_array($result)){
     echo"<option value=$rows[time]>$rows[time]</option>";

   }
?>

任何人都可以告诉我我做错了什么以及为什么第二个选择框不会填充。提前谢谢。

2 个答案:

答案 0 :(得分:2)

不确定这是否是您的问题,但这可能是一个问题。在您的第二个脚本中,您有:

while($rowa = mysql_fetch_array($result)){
  echo"<option value=$rows[time]>$rows[time]</option>";
}

您正在抓取$rowa,但尝试访问$rows。试试这个。

while($row = mysql_fetch_array($result)){
   echo '<option value="'.$row['time'].'">'.$row['time'].'</option>';
}

答案 1 :(得分:0)

我认为rowa和rows是错误。尝试行而不是两个