2014-11-24 42 views
-3

我需要基于ajax的日期值动态更改下拉列表值。从数据库中获取下拉列表的值基于我使用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 
} 
?> 

我会更换选择标签内容。

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

+0

你已经试过实施的任何代码?如果没有,祝你好运:) – 2014-11-24 12:55:15

+0

这不是一个“扔我的代码”论坛。但是,我们将帮助您解决已编写和尝试的代码问题。 – RST 2014-11-24 12:57:14

+0

我试过了,无论我选择了一些值表单下拉列表,它都会使用ajax复制另一个下拉列表。现在这个逻辑,我无法猜测如何去做。 – abdul 2014-11-24 12:58:04

回答

0

一些建议......

  1. 实现Ajax使用jQuery(因为你已经标记与jQuery后,我不知道你为什么不使用它)。这将使billno()功能下的整个xmlhttp更容易。

  2. 如果你想动态基于在文本框中输入的日期值更改的下拉列表中,那么你需要调用在日期输入框中输入onChange()<input class="span6" type="text" name='billdate') - 因为当在此输入框中修改这个值,你开启AJAX。

  3. 写为下面的一行<option value="<?php echo $billno; ?>" <?php echo $billno; ?> ><?php echo $billno; ?></option>

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

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

    $ .post(“billno.php”,{q:str},function(data){(“#txtHintbill”)。html(data); });

  • 上面的代码将执行AJAX后以及从服务器更新结果的DIV ID txtHintbill的HTML。

    希望这给你一些方向前进。

    +0

    谢谢你的建议Mr.hashbrown,我会试试这种方式。 – abdul 2014-11-24 14:01:58

    +0

    没问题,如果答案对您有帮助 - 您可以提出答案或选择答案,方法是单击打勾 – hashbrown 2014-11-24 15:01:46

    相关问题