2012-06-21 39 views
0

我有一個jQuery的功能,控制一些CSS設置狀態爲活動或不。它在點擊事件上運行。當php函數運行時(當用戶使用表單進行搜索時),我需要運行一個類似的函數。搜索字詞通過一個php函數,它將與一個id匹配這個詞。我如何將狀態設置爲使用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的說明 - 你應該使用阿賈克斯()或.post())

要做到這一點,AJAX會返回一些標誌來告訴Javascript要打開/關閉哪些塊以及文本響應。你可以將所有這些包裝在一個JSON對象中。

<?php 

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

?> 

並在JavaScript中使用JSON對象元素來顯示文本,然後還打開/關閉正確的塊。 jQuesry中的這一點會更容易,因爲它爲您處理JSON對象,所以您只需要html.html的response.html和block的response.blocks。

0

您可以通過輸出html腳本標記來執行javascript函數。

即。

<?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中,並提供某種類型的ID以更好地定位您的div ..但這應該作爲一個骯髒的解決方案。

+0

嗨克里斯,我的問題與您的建議是,搜索字詞不對應的房間。該例程正在搜索該術語並在XML文件中查找該ID。 – Baybook

+0

然後,我會建議發送回你的HTML作爲一個獨立的實體,如羅比向你展示的: '<?php $ returnArray = array('html'=>'房間101返回的html','id'=>'房間101'); echo json_encode($ returnArray); >' ,然後按一下按鈕: '$ .getJSON( '?FetchData.php SEARCHTERM =' +術語,功能(數據){$ ( '#' + data.id)的CSS(」背景','紅'); $('#myDiv')。html(data.hmtl); });' – Chris

相關問題