@inqntrl

Как передать через выбор option select несколько значений?

здравствуйте.

Имеется Mysql таблица Товаров (id, name, type)
Формой ввода через ajax ищу совпадения по "name" в выпадающий список, при выборе "option" из списка передаю его в input для дальнейшей отправки формы.
Вопрос: как передавать не только "name", но и "id" и "type" вместе с данным селектом?

index.php
<?php
    if	(isset($_POST['bsave'])){ ?>
<pre><?php print_r($_REQUEST) ?></pre> <?php } ?>
<form method=post>
    <input type="text" name="referal" placeholder="Живой поиск" value="" class="who"  autocomplete="off">
   <ul class="search_result"></ul>
<input type="submit" name="bsave" value="Сохранить" />
</form>


search.php
if((!empty($_POST["referal"])) ){ //Принимаем данные из строки ajax поиска
    $searchq = trim(strip_tags(stripcslashes(htmlspecialchars($_POST["referal"]))));
    $q5="SELECT * FROM tmc_list WHERE name LIKE '%".addslashes($searchq)."%'";
    $getName = mysqli_query($conn,$q5);
    if (mysqli_num_rows($getName)!=0) {
            
        while ($row = mysqli_fetch_array($getName)) {

        print "<select "?> 
        onchange="document.getElementById('rez').value = [].map.call(selectedOptions,el=>el.text);
        " size="4"> <?php ;
            while ($row = mysqli_fetch_array($getName)) {
                print $row['name'];
            print "<option value=".$row['id'].">".$row['name']."</option> <br/>";
            }
print "</select>";
?>
Номенклатура: <input type=text id="rez" name="rez" readonly="readonly">  <br>
Кол-во: <input type=text id="kolvo" name="kolvo" >  <br>
Тип: <input type=text id="ntype" name="ntype" readonly="readonly">  <br>
    <?php
        }
    }
}
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
есть 2 варианта:
1) передавать в ваш инпут строку типа "название_ид_тип" и на сервере обратно разбить и обработать. Решение так себе, например есть косяк с тем что имя вполне может содержать "_", но позволяет вам не сильно менять логику.
2) выводить выпадающий список не селектом, а нормальным списком(див или ул), в дата атрибуты которого прописать соответствующие данные(имя, ид, тип), по клику в 3 поля формы разносить эти данные и получить нормальную форму.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы