2012-06-11 3 views
0

Я использую TokenInput Loopj, и он работает нормально.TokenInput - получение значений из нескольких полей поиска

У меня есть три окна поиска на одной странице - по одному для трех разных атрибутов поиска и каждый со своим внешним источником данных (в этом случае поиск по имени судна, классу корабля и типу судна). Конечно, есть три кнопки «Отправить», по одному для каждого окна поиска.

Моя проблема: нажатие любой кнопки «Отправить» возвращает значения только для собственного окна поиска (на основе включенного сценария - см. Ниже). Я хочу нажать кнопку ANY и получить значения для ВСЕ окна поиска, чтобы я мог создать запрос MySQL.

<script type="text/javascript"> 
    $(document).ready(function() { 
    $("input[type=button]").click(function() { 
     alert("Would submit: " + $(this).siblings("input[type=text]").val()); 
    }); 
}); 
</script> 

Примечание: Эта earlier question "Using tokeninput jquery plugin on more than one input on a page" .seems связанные, но ответы на этот вопрос не решить эту проблему.

ответ

1

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

  1. Скриншот javascript 'alert' - это красно-селедка. Он не волшебным образом получает значения токена из воздуха. Значения маркера уже хранятся в соответствующих полях ввода.

  2. Кнопки «Отправить» - это красно-селедка. Это потому, что они ». Они просто есть, чтобы вызвать яваскрипт предупреждения, они не могут представить форму.

  3. Вам нужна форма! В„“демосе TokenInput показывает, как плагин работает, но они предназначены для использования IN A FORM.

  4. Я добавил поле формы в верхней части моей страницы и поле формы закрытия (</form>) в нижней части страницы. В результате мои три поиска ящики были внутри формы. Обратите внимание, что действие заключается в том, чтобы извлечь одну и ту же страницу и метод = сообщение.

    `<form id="myshiptype" name="pixsearchform" action="<?php echo $_SERVER[REQUEST_URI]; ?>" method="post" >` 
    
  5. Я изменил поля ввода ввода «имя» на «бла» на что-то более значимое - shipid, classid и typeid.

  6. Я добавил кнопку «Отправить» (из серии <input type="Submit" />) в нижней части формы. <input type="submit" id="update" name="update" value="Update search" />

  7. Я добавил на страницу код отладки, чтобы показать значения полей ввода после нажатия кнопки «Отправить».

    <?php 
    $postvalues = ""; 
    if ($_POST) { 
    $kv = array(); 
    foreach ($_POST as $key => $value) { 
    $kv[] = "$key=$value"; 
    } 
    $postvalues = join("&", $kv); 
    } 
    echo "post values are ".$postvalues; 
    ?> 
    
  8. Вот образец отладки - "почтовые значения shipid = 34 & ClassID = & TypeId = 677638 & обновление поиск = Update"

Следующие шаги должны адаптировать форму к Ajax, а также отключить клавишу «Enter» в форме (когда пользователь нажимает Enter в пустом Поиске).

Смежные вопросы