Как использовать значение выбранного значения из DropDownList, заполненного AJAX / PHP - PullRequest
1 голос
/ 10 апреля 2010

У меня есть форма с двумя выпадающими списками (скажем, A и B). Когда я выбираю значение из A, B заполняется соответственно с помощью AJAX

На той же странице у меня есть кнопка, которая при нажатии переносит значения выбранных элементов из выпадающих списков на другую страницу 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>";     
} ?>

если вы хотите увидеть полный код загрузки с здесь

1 Ответ

1 голос
/ 10 апреля 2010

Очистите старое значение из поля B, и пока вы вставляете новые опции выбора в B, также соответственно вставляйте значения в опции.

на js Примечание: argstr - это строка, которую вы получаете из php-файла ajax, разделенная на значение1: опция1 | значение2: опция2 и 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;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...