Home >php教程 >PHP开发 >Data transfer between PHP and JavaScript

Data transfer between PHP and JavaScript

高洛峰
高洛峰Original
2016-11-28 14:04:561610browse

In web development, communication between PHP and JavaScript is something that often needs to be done. Below is an example.

JavaScript side:

Be sure to set xmlHttp.setRequestHeader, otherwise the parameters passed to PHP will become null (line 43). Line 36 is the highlight.

<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(&#39;show&#39;).innerHTML +=str;
            //alert(str);
            var obj = eval(&#39;(&#39;+ xmlHttp.responseText +&#39;)&#39;);
            //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 side [testJson.php]:

Note that the php file must be clean, and there must be no other tags outside the bb9bd6d87db7f8730c53cb084e6b4d2d tag, otherwise the eval function cannot parse it.

<?php 
$res[&#39;id&#39;] = $_POST[&#39;id&#39;];
$res[&#39;name&#39;] = "elar";
$res[&#39;age&#39;] = "21";
$response = "hello this is response".$_POST[&#39;id&#39;];
echo json_encode($res);
?>

Summary:

js wants to send data to PHP, it uses xmlHttp.send("id=123");

PHP sends data to js, ​​it uses echo json_encode($res); (note The construction of variable $res should comply with JSON specifications)

js To parse the JSON format data sent by PHP, use var obj = eval('('+ xmlHttp.responseText +')');


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn