2012-06-21 3 views
0

У меня есть функция jquery, которая управляет некоторым css, который устанавливает состояние в активном или нет. Он запускается при событии клика. Мне нужно запустить аналогичную функцию, когда запускается функция php (когда пользователь выполняет поиск в форме). Термин поиска проходит через функцию php, которая будет соответствовать термину с идентификатором. Как настроить состояние на активную с помощью функции php? Вот ссылка на пробной площадиНужно вызвать функцию jquery или наоборот

http://vtour.dev4.webenabled.net/tester/index.html

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

(прикрепление файла функция поиска. Я знаю, что есть куча барахла там, но раздел, который соответствует этому примеру начинается около линии 149

Небольшой лаванды поля рядом с входной линией является щелчком/значок поиска

Спасибо

+0

Вы считали, что используете jquery или не используете jquery? в какой-то момент смесь кода должна запутаться; непрерывность - +1. Также ... вы вызываете jQuery дважды на своем сайте. который играет важную роль. Он также выглядит так, как будто вы вызываете searchTerm.value, но вы никогда не передаете 'searchTerm' функции' getInfo() ', которая, вероятно, должна быть функцией' function getInfo (searchTerm) '. и даже если вы не захотите передать его, вам все равно нужно объявить 'var searchTerm = $ ('input # searchTerm')' где-то, чтобы это начало работать. – Ohgodwhy

+0

Я работаю над чужим проектом, который остался в середине потока. PHP не является ни форте, ни jquery. Поскольку это работает, за исключением состояния sctive, я хотел бы попытаться исправить – Baybook

ответ

0

вы не можете сделать это с PHP, вы делаете все через JavaScript (и видеть комментарий Ohgodwhy, особенно записку об использовании JQuery или нет с помощью JQuery - вы должны использовать .ajax() или .post(), например).

Чтобы сделать это, AJAX вернет некоторый флаг, чтобы сообщить Javascript, какие блоки включать/выключать, а также текстовый ответ. Вы можете обернуть все это в объект JSON.

<?php 

$returnArray = array('html' => 'HTML TO DISPLAY', 'blocks'=>array(1,3,4)); 
echo json_encode($returnArray); 

?> 

и в JavaScript использовать элементы объекта JSON для отображения текста, а затем также включить/выключить нужные блоки. Этот бит будет проще в jQuesry, поскольку он обрабатывает объект JSON для вас, поэтому вам потребуется только response.html для html-бита и response.blocks для блоков.

0

Вы можете выполнить функцию javascript, выведя тег сценария html.

ie.

<?php 
echo "<script type=\"text/javascript\">runJavascriptFunction()</script>"; 
?> 

Таким образом, вы могли бы технически понижаться, что в ответ от вашего FetchData.php - но если бы это было, я бы сделал все это с JQuery:

$('#woodward-title-search-button').click(function() { //on button click 
    var term = $('#searchTerm').val(); //the search term 
    $('#room-'+term).css('background','red'); //or more nicely: .addClass('highlighted'); 
    //load the response of fetchdata into #myDiv 
    $('#myDiv').load('FetchData.php?searchTerm='+term); 
}); 

Я хотел бы предложить общение с PHP в json и предоставив идентификатор некоторого вида, чтобы лучше настроить ваш div. но это должно работать как низкое и грязное решение.

+0

Привет Крис, Моя проблема с вашим предложением в том, что поисковый запрос не соответствует комнате. Подпрограмма принимает поисковый запрос и находит идентификатор в файле XML. – Baybook

+0

Тогда я бы предложил отправить идентификатор обратно с вашим HTML как отдельный объект, так как Робби показал вам: ' 'html для комнаты 101 для возврата', 'id' => 'room-101'); echo json_encode ($ returnArray); > ' , а затем на кнопку мыши: ' $ .getJSON ('? FetchData.php SEARCHTERM =' + термин, функция (данные) { $ ('#' + data.id) .css (» background ',' red '); $ (' # myDiv ') .html (data.hmtl); }); ' – Chris

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