onChange обновить конкретный выпадающий список в PHP - PullRequest
0 голосов
/ 01 апреля 2012

ПРОБЛЕМА?

Мне нужна помощь относительно команды PHP onChange.По сути, я делаю систему бронирования номеров в отелях.То, что я пытаюсь сделать, это то, что есть буксирные комбо-боксы.

  • Один для ИМЕНИ ОТЕЛЯ (COMBO BOX NO.1)
  • Другой для ЭТАЖА НЕТ (COMBO BOX NO.2)

Что я хочу сделать, так это то, что если я выберу название отеля из поля со списком 1, то количество этажей для этого конкретного отеля будет автоматически заполнено в поле со списком 2. (Эта информация о количестве этажей должна быть получена из соответствующей таблицы / поля в базе данных)

ЧТО Я ПЫТАЛАСЬ СДЕЛАТЬ - КОД

<td>Hotel:      
        <select name="hotel_name" id="hotel_name" title="<?php echo $row_rs_hotel['hotel_name']; ?>" onchange="<?php
while ($row_rs_floor = mysql_fetch_assoc($rs_floor));
  $rows = mysql_num_rows($rs_floor);
  if($rows > 0) {
      mysql_data_seek($rs_floor, 0);
      $row_rs_floor = mysql_fetch_assoc($rs_floor);
  }
?>">
          <?php
do {  
?>
          <option value="<?php echo $row_rs_hotel['hotel_name']?>"><?php echo $row_rs_hotel['hotel_name']?></option>
          <?php
} while ($row_rs_hotel = mysql_fetch_assoc($rs_hotel));
  $rows = mysql_num_rows($rs_hotel);
  if($rows > 0) {
      mysql_data_seek($rs_hotel, 0);
      $row_rs_hotel = mysql_fetch_assoc($rs_hotel);
  }
?>
                                        </select></td>
    </tr>
    <tr>
      <td>Floor No:      
        <select name="floor_no" id="floor_no" title="<?php echo $row_rs_floor['floor_no']; ?>" onchange="var id=$('hotels_name').val();
$('floors_no').load('ajax.php?id='+id);

">
          <?php
do {  
?>
          <option value="<?php echo $row_rs_floor['floor_no']?>"><?php echo enter code here$row_rs_floor['floor_no']?></option>
         <?php
} while ($row_rs_floor = mysql_fetch_assoc($rs_floor));
  $rows = mysql_num_rows($rs_floor);
  if($rows > 0) {
      mysql_data_seek($rs_floor, 0);
      $row_rs_floor = mysql_fetch_assoc($rs_floor);
  }
?>
                </select></td>

ЧТО Я ПОЛУЧАЮ ИЗ ВЫШЕГО КОДА ??

В поле со списком 2 автоматически загружается первая запись в таблице при открытии страницы.Независимо от того, сколько раз я выбираю отель в поле со списком 1, значения в поле со списком 2 остаются неизменными.

ПОЖАЛУЙСТА, ПОМОГИТЕ .. !!!

1 Ответ

0 голосов
/ 01 апреля 2012

Вы должны объединить как javascript, так и php, так как вы хотите извлечь информацию из базы данных (на стороне сервера, используя php + немного mysql) с динамической страницей без обновления (на стороне клиента, использующей javascript).Конечно, это будет долгая трудная работа, но я думаю, что это лучший подход.

Прочтите эту статью о двойном раскрывающемся меню и изучите код эту статью (или найдите похожие проекты)и когда вы понимаете javascript, вы должны заполнить его там, где это необходимо, php.

Например, это немного из исходного кода javascript (или html):

if (Indx==1)
{
options[0]=new Option("Choose a JavaScript Page","");
options[1]=new Option("Alerts","alerts.htm");
options[2]=new Option("Back and Forward Buttons","BackForward.htm");
options[3]=new Option("Contents","index.html");
}

ДляВ вашем проекте это должно быть что-то вроде этого (не завершенное и не без ошибок, но это просто для того, чтобы дать вам представление:

if (Indx==1)
{
<?php
$i=0;
while ($row = mysql_fetch_array($result))
    {
    ?>
    options[<?php echo $i;?>]=new Option("<?php echo $row['name']."\",\"".$row['page']; ?>");

    <?php $i=$i+1; } ?>
}

Это должно дать вам тот же код (при условии, что «имя» и «page '- это значения ваших столбцов в вашей базе данных.) И это должно быть сделано во всех удобных битах javascript, но я не буду выполнять всю вашу работу ... сделаю все возможное, и, если он все еще не работает,вернитесь и задайте более конкретный вопрос о коде.

Если вы заставите его работать, я бы посоветовал вам опубликовать его здесь, отредактировав свой вопрос, чтобы каждый мог извлечь из него урок.Это то, как я бы подошел к этой проблеме, но, безусловно, есть и другие способы сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...