как получить форму ввода, выбрать значения с той же страницы в PHP? - PullRequest
0 голосов
/ 11 апреля 2011

У меня есть форма, которая имеет:

<form name="myForm" action="a.php" method="post">
    <fieldset>
        <label>class</label>
        <select>
            <option>1</option>
            <option>2</option>
            <option>3</option>
        </select>

        <label>Subject</label>
        <select>
            <option>some value from database</option>
            <option>some value from database</option>
            <option>some value from database</option>
            <option>some value from database</option>
        </select>
    </fieldset>
<form>

Дело в том:

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

Таким образом, задача состоит в том, чтобы взять значение из первого выпадающего значения выбора, чтобы использовать его во втором выпадающем списке выбора.Значения ПЕРЕД ФОРМОЙ ПРЕДСТАВЛЕНЫ ВРУЧНУЮ.Как я могу это сделать?Я использую php.Что еще мне нужно?

ДОБАВЛЕНО ПОЗЖЕ:

До сих пор у меня есть представление о решении опубликованной задачи.

СЕЙЧАС думаю, что,

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

все выпадающие элементы <select></select> будут располагаться горизонтально на одной странице.

Ответы [ 4 ]

1 голос
/ 11 апреля 2011

Вам нужны клиентские скрипты для этого.Вот статья о том, как реализовать эту функцию с помощью jQuery (популярной платформы JS)

0 голосов
/ 14 апреля 2011

Вы можете попробовать это:

onchange = "$('select[name=\'xyz\']').load('yourUrl/someFunction&country_id=' + this.value);"

этот атрибут onchange будет применен к первому блоку выбора и присвоит имя второму блоку выбора. как:

Приведенный выше код будет отправлять запрос AJAX GET всякий раз, когда вы меняете опцию из первого выпадающего меню.

И извлекает значения из БД в вызываемой функции и возвращает HTML. Например:

  someFunction() {
     //get values from DB and loop
   String html = "<option></option>";
   return html;
}
0 голосов
/ 11 апреля 2011

Вам понадобится Javascript для обработки этого, переопределения события onSelectionChange для List Control и при изменении события получите значения для второго раскрывающегося списка из сценария на стороне сервера.

0 голосов
/ 11 апреля 2011

вам нужно использовать javascript и AJAX для динамического извлечения значений для второго выпадающего списка.Например, с использованием jQuery это будет:

$('#select1').change(function() {
   var selectedVal = $(this).val();

   //make an AJAX request to get your values depending on selectedVal
   //and update the values for the second select
}

В сценарии PHP вам нужно будет оценить входящий параметр, представляющий выбор пользователя для первого select, а затем вернуть, например, в формате JSON,данные, которые вы загружаете из базы данных.

Редактировать: Запрос AJAX будет выполнен следующим образом:

$.post("getsecondvals.php", { value: selectedVal }, function(data) {
   var result = $.parseJSON(data);
   $('#select2').html(''); //delete any old values

   for (var entry in result) {
      var option = $('<option></option>');
      option.text(entry);

      $('#select2').append(option);
   }
});

И ваш PHP-скрипт может быть структурирован следующим образом:

<?php
$selectedValue = $_POST['value'];
// now include everything required for your database connection
// and get the categories, use prepared statements

// finally, your resulting array should be non-associative, so
// always add new values with "[]" operator
// assuming $values is your array containing the valid options, do this:
echo json_encode($values);
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...