如果使用jQuery显示行,则运行PHP代码

时间:2011-05-09 11:34:35

标签: php jquery

我在id元素中有PHP代码。 可以使用jQuery中的id显示该行。 如果该行被隐藏,我希望PHP代码不能运行,因为我正在根据用户选择创建报告。 问题是,无论是显示还是隐藏行,PHP代码始终都会运行。 此外,PHP正在显示数据库中的数据,因此我不得不使用它。

1 个答案:

答案 0 :(得分:3)

我可能只是错误地阅读了您的问题,但听起来您希望在服务器上完成渲染后使用jQuery来触发PHP代码。这是可能的,但可能不像你想的那样。

PHP的工作是在生成HTML(或执行其他操作)并将数据传递到浏览器时完成的。一旦浏览器拥有这些数据(通常只是静态HTML),那么JavaScript的工作就开始了。 JavaScript此时无法“回访”并在PHP中调用函数,因为PHP已经完成执行。但是,还有另一种方式。

使用JavaScript调用PHP代码的最佳方法是使用XMLHttpRequest(XHR)。 jQuery provides a great method for doing this。使用我链接到的文档中的略微修改的示例:

$.ajax({
    url: 'dbCall.php?arg1=foo&arg2=bar',
    success: function(data) {
        $('.result').html(data);
        alert('Load was performed.');
    }
});

此代码将调用文件dbCall.php - 可以通过GET(arg1=foo&arg2=bar)传递参数 - 然后等待其结果。结果到达后,将触发success回调,该回调将使用result脚本中的数据替换类dbCall.php的所有元素的内容。然后,alert电话会在屏幕上弹出一个对话框,让您知道这已成功发生。