您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 本溪分类信息网,免费分类信息发布

PHP与JavaScript间的数据传递

2024/2/18 21:24:15发布25次查看
在web开发中,php与javascript之间的通信是经常需要做的事。下面是一个例子。
javascript端:
一定要设置xmlhttp.setrequestheader,否则传往php的参数会变成null(line 43)。第36行是亮点。
<script type="text/javascript"> function getjson() { var xmlhttp; try { // firefox, opera 8.0+, safari xmlhttp = new xmlhttprequest(); } catch (e) { // internet explorer try { xmlhttp = new activexobject("msxml2.xmlhttp"); } catch (e) { try { xmlhttp = new activexobject("microsoft.xmlhttp"); } catch (e) { alert("您的浏览器不支持ajax!"); return false; } } } xmlhttp.onreadystatechange = function() { if (xmlhttp.readystate == 4) { //alert(xmlhttp.responsetext); var str = xmlhttp.responsetext; document.getelementbyid('show').innerhtml +=str; //alert(str); var obj = eval('('+ xmlhttp.responsetext +')'); //var obj = eval(({"id":"123","name":"elar","age":"21"})); alert(obj.name); } } var data = "id=123"; xmlhttp.open("post", "testjson.php", true); xmlhttp.setrequestheader("content-type","application/x-www-form-urlencoded"); xmlhttp.send("id=123"); } </script> <input type="button" onclick="getjson()" value="按我!"/> <hr /> <div id="show"></div>
php端【testjson.php】:
注意,php文件要干净,<?php ?>标签的外部不能有其他标签,否则eval函数无法解析。
<?php $res['id'] = $_post['id']; $res['name'] = "elar"; $res['age'] = "21"; $response = "hello this is response".$_post['id']; echo json_encode($res); ?>
总结:
js要往php端送数据,用的是xmlhttp.send(id=123);
php给js送数据,用的是echo json_encode($res);(要注意变量$res的构造应符合json的规范)
js要解析php送来的json格式的数据,用var obj = eval('('+ xmlhttp.responsetext +')');
本溪分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录