根据我使用ajax选择的日期从数据库中获取下拉列表值

时间:2014-11-24 12:53:53

标签: php jquery ajax html.dropdownlistfor

我需要根据ajax的日期值动态更改下拉列表值。?

这是我的代码

    <div class="span3">
                                          <label>Bill Date 
                                           <div class="span12">
                                             <div class="input-append date" id="dp2" data-date-format="yyyy-mm-dd">
                                                <input class="span6" type="text" readonly="readonly" name='billdate' value="<?php echo $date1; ?>"/> <span class="add-on" disabled><i class="splashy-calendar_day" ></i></span> 
                                             </div>
                                            </div>
                                            </label>
                                       </div>
    <div class="span2" id="txtHintbill" style=" margin-left:85px;">
                                        <label>Mode:</label>
                                        <select name="mode" class="span10" onChange="billno(this.value)">
                                                  <option value="">Select Mode</option>
                                                  <option value="CASH" selected>CASH</option>
                                                  <option value="CREDIT">CREDIT</option>
                                                 <!--  <option value="CHEQUE">CHEQUE</option> -->
                                                  </select>
                                    </div>

我的脚本代码是

  <script>
   function billno(str)
    {
    var xmlhttp;    
    if (str=="")
      {
      document.getElementById("").innerHTML="";
      return;
      }
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
     }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        document.getElementById("txtHintbill").innerHTML=xmlhttp.responseText;
        }
      }
    xmlhttp.open("GET","billno.php?q="+str,true);
    xmlhttp.send();
    }
    </script>

我的billno.php文件是

<?php
include"config.php";
$m=$_GET["q"];
?>
<?php
$con=mysql_query("SELECT billno FROM printhub1 WHERE date1='$m' AND cash_detail='Not Received' ORDER BY billno");
$num=mysql_num_rows($con);
if($num==1)
{
?>
<select name="billno" id="billno" >
<?php

while($row=mysql_fetch_array($con))
{
    $billno=$row['billno'];
    ?>
    <option value="<?php echo $billno; ?>" <?php echo $billno; ?> ><?php echo $billno; ?></option>
    <?php
}
    ?>
</select>
<?php
}
?>

我想替换select标签内容。

我已经尝试过检索值并在文本框中显示,但我不知道如何获得完整的下拉列表值。

1 个答案:

答案 0 :(得分:0)

一些建议......

  1. 使用jQUERY实现AJAX(因为你已经使用jQuery标记了帖子,我想知道你为什么不使用它)。这将使xmlhttp函数下的整个billno()更容易。

  2. 如果要根据文本框中输入的日期值动态更改下拉列表,则需要在日期输入框(onChange())中调用<input class="span6" type="text" name='billdate' - 因为当此输入框中的此值发生更改时,您将激活AJAX。

  3. 写下行<option value="<?php echo $billno; ?>" <?php echo $billno; ?> ><?php echo $billno; ?></option>,如下所示:

  4. <option value="<?php echo $billno; ?>"><?php echo $billno; ?></option>

    1. 您需要一种机制来根据您的AJAX调用的回复刷新<SELECT>。我建议你使用jQuery来更新<select>。例如,

      $ .post(&#34; billno.php&#34;,{q:str},function(data){          $(&#34; #txtHintbill&#34;)。html(数据); });

    2. 上面的代码将执行AJAX帖子,并使用服务器的结果更新div ID txtHintbill的HTML。

      希望这能为你提供一些前进的方向。