Поиск в нескольких полям по одному и тому же запросу

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

Далее нужно поместить в код дополнительный скрытый элемент input с именем fields. В его атрибуте value записывается перечень (через запятую) с номерами всех полей, по которым должен производиться поиск.

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

songs.tpl (5)
<?php

    echo "
    <form action='?page=$page&block=$block' method='post'>
        <input type='text' name='search[1]'>
        <input type='hidden' name='fields' value='1,2'>
        <input type='submit' value='Искать'>
    </form>

    <table>";
    foreach ($tab as $dat)
    echo "
        <tr>    
        <td>{$dat['edit']}</td>
        <td>$dat[1]</td>
        <td>$dat[2]</td>
        </tr>
    ";
    echo "
    </table>";
       
?>

В принципе, можно обойтись стандартными полями ввода (без элемента fields). То есть, сделать элементы input для остальных полей как обычно, но скрыть их, указав в атрибуте type='hidden'. А в атрибут value скрытых полей ввода передавать средствами DOM значение того же атрибута от открытого элемента input. Однако, при этом получается несколько громоздкий код, написанный на языке JavaScript.

Запрос search без ключа

При использовании списка поисковых полей (fields), параметр search допустимо указывать без ключа:

<input type='text' name='search'>
<input type='hidden' name='fields' value='1,2'>

Примечания