我有三个div
s保存在array
作为simple_html_dom
的对象。我需要点击一个按钮来更改其中两个CSS属性。这很简单,但是我还需要在服务器端的PHP脚本中对CSS属性(在存储在上述数组中的simple_html_dom对象中)进行更改。
所以我从我的网络搜索算出我需要AJAX为此。所以,我读了this tutorial,和我下面this example,并且做这样的事情:
在客户端:
function xyz(var divIdOne, var divIdTwo) {
document.getElementById(params.divIdOne).style.display = "none";
document.getElementById(params.divIdTwo).style.display = "block";
document.getElementById(params.divIdTwo).style.border = "5px solid red";
var xmlhttp;
if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest();}
else { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }
xmlhttp.open("GET","myfile.php?pass_back="+"pass_back",true);
xmlhttp.send();
}
在服务器端:
foreach($_REQUEST as $requestkey => $requestvalue) {
echo $requestkey.': '.$requestvalue;
}
if (array_key_exists('pass_back', $_REQUEST)) {
foreach ($array_of_divs as $div) {
if ($div->id=$divIdOne) {
$div->style='display:none';
} else if ($div->id=$divIdTwo) {
$div->style='display:block';
}
}
} else {echo 'FALSE!';}
第一foreach loop
打印其他变量但不打印pass_back
。下一个if
块根本不执行。执行else
块。这意味着$_REQUEST
显然不包含pass_back。任何人都可以指出为什么,或者我做错了什么?
如果您使用$ _GET而不是$ _REQUEST,它会工作吗? – 2014-09-21 17:49:53
@MarceloRibeiro不! – Solace 2014-09-21 17:51:07
您是否试图直接在浏览器中访问url,以确保它不是ajax调用?即直接访问/myfile.php?pass_back=pass_back?你如何检查PHP脚本正在打印什么? – 2014-09-21 17:55:04