在调用PHP脚本后尝试用JS切换div

时间:2011-06-09 23:39:32

标签: php javascript ajax

我想知道这是否可行:

我有一个页面。用户单击链接并调用PHP脚本。 PHP脚本返回true或false。

根据真假,我希望能够切换div。

我想知道我是否需要以AJAX方式进行操作?人们通常如何做到这一点? 似乎非常普遍。

我已经在使用这个YUI库了:

<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/combo?2.8.2r1/build/reset-fonts-grids/reset-fonts-grids.css&2.8.2r1/build/base/base-min.css">

4 个答案:

答案 0 :(得分:2)

jQuery的:

$.post('/path/to/url', {data: 'some data'}, function(data) {
    if (data) $('#some-div').show();
    else $('#some-div').hide();
}, 'json');

PHP:

echo json_encode(true);

有关详细信息,请参阅:

答案 1 :(得分:2)

是的,您应该使用AJAX在您的网站中创建良好的流程。您可以使用其中一个大型JavaScript框架,而不是实现自己的AJAX处理函数,我建议使用http://jquery.com/。在那里,您可以阅读(并查看示例)jQuery.ajax - http://api.jquery.com/category/ajax/

这应该让你开始,但主要的想法是将该链接绑定到一个AJAX函数,它将调用你的PHP脚本,并根据返回数据的内容,打开/关闭你的DIV。

祝你好运!

答案 2 :(得分:2)

设置php脚本以添加隐藏字段...例如......

<input type="hidden" id="passed-value" value="passed-val-is-true" />

然后在你的Javascript中触发切换事件..检查该元素......

在jQuery中会是这样的......

$foo.click(( if (passed-value.value === "passed-val-is-true") { foo.toggle(); }

对不起语法..但你应该得到一般的想法。

另外,如果你需要它没有页面重新加载,我会推荐Ajax(pref通过jQuery)

答案 3 :(得分:0)

是的,非常简单,不需要Ajax。这有两种方式:

使用直接PHP:

<?php

if($test) {
  echo "<div>Content...</div>";
}

?>

或者,使用内联Javascript(在PHP脚本中),假设您的HTML中有<div id='targetDiv'>,PHP中有$testVar

<script type='text/javascript'>
function toggle(testVar) { 
  if(testVar) { document.getElementById('targetDiv').style.display = ""; }
  else { document.getElementById('targetDiv').style.display = "none"; } 
}

window.onload = function() { toggle(<?php echo $testVar; ?>); } 
</script>

第二种方法可以很容易地改变以优雅地降级。