所以假设之情况是,JS是在button的点击调用。现在,当点击该按钮并调用JS函数时,整个网页已经被加载。所以,如果我通过从JS在URL从XMLHTTPRequest.open()功能(以及使用该方法GET)传递的变量,该变量被发送到$_REQUEST阵列上的服务器端。
1.现在,由于页面已经被加载,所以在元素已经显示的情况下,如何对元素属性的值进行更改。
之情况: -
我有一个PHP array与HTML三div的,他们呼应/显示。最初所有的div除了第一个都有display:none;样式属性。现在,在第一div的点击一个按钮的,我想调用一个函数JS我在那里设置display:none到第一div,并且display:block;到第二div。现在很简单。 但我希望在服务器端的上述数组中的各个div的HTML显示属性中进行此更改。
所以我想我需要AJAX。在this example之后,我尝试在URL中发送一个变量,然后尝试从$_REQUEST获取变量,但$_REQUEST似乎没有包含它。虽然我asked this question here,但我觉得这可能是因为已经执行,我在哪里写的代码从$_REQUEST获得该变量的页面的一部分,我想知道我应该写的代码只提到点击后执行按钮?
基本上说,我们在哪里写剧本AJAX,因为已经执行了页面的代码?
注: - 不建议JQuery的。我不能使用JQuery,但我可以使用YUI。我搜索了一下,发现了一些使用JQuery方法的解决方案。
JS代码: -
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();
}
凡在服务器端的PHP脚本,我写的,这样当点击按钮后,其执行从URL接收变量的代码(其单击事件调用此JS函数的按钮)。
我试图在服务器上的文件的随机的地方做这样的事情,但它不工作了:
foreach($_REQUEST as $requestkey => $requestvalue) { //loop for just checking the elements of $_REQUEST
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!';}
2014-09-22
Solace
+0
'request.onreadystatechange =函数({如果(request.status === 200和request.readyState === 4){风险数据= EVAL ('('+ request.responseText +')'}}'。应该使用PHP的'echo json_encode($ assocArray);'Sever Side。JavaScript'var data''将成为JavaScript Object。'onreadystatechange'处理DOM。 –
2014-09-22 00:18:47
+0
哪里有关于这个问题的代码? –
2014-09-22 00:20:00
+0
@Ghost我发布了一些代码给[这个链接的问题](http://stackoverflow.com/questions/25962104/ajax-why-does-request-on -server-side-not-contain-the-variable-passed-from-js)。它是o部分的文件f很大,我只是贴了相关的位。而且,我不确定是否应该在这里发布代码以及它会使问题过长。 –
2014-09-22 00:23:43