выберите выбранную запись при загрузке - PullRequest
0 голосов
/ 14 июня 2019

У меня есть форма с выбором, которая отправляет значение в php-запрос при изменении, но у меня две проблемы.

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

<form action=" " method="get">
<select class="form-control select2-single " id="p1" name="projects" 
onchange="this.form.submit()">
echo "<option value='$project_id'>$project_name</option>"; 
</form>



if(!isset($_GET["projects"])){
$project = 1;} else {
$project = $_GET["projects"];
$query = "SELECT * FROM items WHERE item_id = $project";
}}

Ожидаемый:

  • при выборе первого элемента из выбранного, значение должно быть отправлено в запрос php.

  • и когда элемент выбран из выбора, этот элемент должен отображаться как выбранный.

Фактически:

  • выбор первой опции ничего не делает
  • выбор второй опции возвращает правильные данные, но не выбран

1 Ответ

0 голосов
/ 14 июня 2019

Onchange не сработает, если значение не изменится. Добавление пустого элемента поможет вам преодолеть это. Или, может быть, библиотека сценариев Java.

$options = [1,2,3,4];
echo '<form method="get">
<select class="form-control select2-single " id="p1" name="projects" onchange="this.form.submit()">
<option value=""></option>';

foreach($options as $option){
    $selected = '';
    if($_GET['projects'] == $option){
        $selected = 'selected';
    }
    echo "<option value='$option' $selected >$option</option>";
}
echo '<select/></form>';
print_r($_GET);

Ваша открытость для инъекций sql, Необходимо использовать предварительно подготовленную выписку Таблицы Бобби

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