0

我有一个 jquery 函数,它控制一些将状态设置为活动或不活动的 css。它在点击事件上运行。当 php 函数运行时(当用户使用表单搜索时),我需要运行类似的函数。搜索词通过一个 php 函数,该函数将匹配具有 id 的词。如何使用 php 函数将状态设置为活动状态?这是测试区的链接

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

如果单击某个区域,则选择保持活动状态。如果您在 lavender 搜索框中键入名称,然后单击搜索图标,则不会选择相应的区域。

(附上搜索功能文件。我知道那里有一堆垃圾,但与此示例对应的部分从第 149 行开始

输入行旁边的小薰衣草框是点击/搜索图标

谢谢

4

2 回答 2

0

您可以通过输出 html 脚本标签来执行 javascript 函数。

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); 
});

我建议在 json 中与您的 PHP 进行通信,并提供某种 ID 以更好地定位您的 div .. 但这应该是一个低效且肮脏的解决方案。

于 2012-06-21T04:53:54.120 回答
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 用于块。

于 2012-06-21T04:43:56.170 回答