如何使用填充了AJAX / PHP的DropDownList中的选定值的值

时间:2010-04-10 14:01:16

标签: php ajax drop-down-menu

我有两个下拉列表的表单(比如A和B)。 当我从A中选择一个值时,使用AJAX相应地填充B

在同一页面中,我有一个按钮,按下该按钮后,将下拉列表中所选项目的值发布到另一个PHP页面。我遇到的问题是B的选定值返回为空白/空。

有没有办法存储使用AJAX填充的下拉列表的选定值?

以下代码:

(主要表格)

<form name="NewBar" method="post" onsubmit="return validateFormOnSubmit(this)" action="AssignContactDetailToBar_f.php"> 
           <tr>
                <td width="150"><b>Bar:</b></td>
                <td>                
                    <select name = "bar" onChange="getContact('AssignContactDetailToBar_f_getContacts.php?bar='+this.value)" size = 1 style = "width:190px">
                    <option value = "">---Select---</option>
                    <?php
                    while ($data = mysql_fetch_array($r_getBarsDetails))
                    {
                        echo "<option value=\"".$data['bar_id']."\">".$data['bar_name']." (".$data['town_name'].")</option>";
                    }
                    ?>
                </td>
            </tr>
            <tr>
                <td width="150"><b>Contact Person:</b></td>
                <td>                
                    <div id="persondiv"><select name = "person" size = 1 style = "width:190px">
                    <option value = "">--Select Bar--</option>
                </td>
            </tr>               
            <tr>
                <td>
                    <input name="security" type="text" size="15">
                </td>
                <td>
                    <input type="submit" name="Submit" value="Submit">
                </td>
            </tr>
        </form>

用于填充第二个下拉列表的表格

<select name="person" size = 1 style = "width:190px">
<option value = "">--Select Person--</option>   
<?php 
while($data=mysql_fetch_array($result)) 
{ 
    echo "<option value=\"".$data['person_id']."\">".$data['person_name']." ".$data['person_surname']." (".$data['town_name'].")</option>";     
} ?>

如果您希望从here

看到完整的代码下载

1 个答案:

答案 0 :(得分:1)

清除框B中的旧值,当您向B插入新的选择选项时,也会相应地在选项中插入值。

在js上 注意:argstr是字符串你从ajax php文件中获取,由value1分隔:option1 | value2:option2 和argctrl获得了之前的Box B选项

function splitstr(argstr,argctrl)
{
var o;
    var ctrl = eval(argctrl);
    var prezar = argstr.split("|");
    argctrl.length = 0;
    clearcombo(ctrl);
    if(argstr!='')
    {
        for (o=0; o < prezar.length; o++)
        {
          splitarr = prezar[o].split(":");

           ctrl[ctrl.length] = new Option(splitarr[1], splitarr[0]);

        }
    }
}


function clearcombo(argctrl)
{
  for (var i=argctrl.length-1; i>=0; i--)
  {
    argctrl[i] = null;
  }
}