首頁  >  文章  >  php教程  >  PHP與JavaScript間的資料傳遞

PHP與JavaScript間的資料傳遞

高洛峰
高洛峰原創
2016-11-28 14:04:561542瀏覽

在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(&#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端【testJson.php】:

注意,php檔案要乾淨,標籤的外部不能有其他標籤,否則eval函數無法解析。

<?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);
?>

總結:

js要往PHP端送數據,用的是xmlHttp.send("id=123");

PHP給js送數據,用的是echo json_encode($res);(要注意變數$res的建構應符合JSON的規範)

js要解析PHP送來的JSON格式的數據,用var obj = eval('('+ xmlHttp.responseText +')');


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn