2012-06-21 108 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

相关问题