如何将PHP数据传递给外部JavaScript

时间:2015-05-26 00:44:07

标签: javascript php ajax

我想将一个变量,或者说一条消息,从我的PHP文件传递到我的外部JavaScript文件。我看了其他已回答的问题,看起来PHP文件并不是真正的PHP,它有一些js代码。

我只想传递一条简单的消息,以便我可以在外部js中使用alert()来显示消息。

我应该使用JSON(我不知道怎么做)?或者有更简单的方法吗?我是所有这些的新手,所以也许可以通过没有jQuery的答案进行简单的解释。

在PHP文件中:

function checkDuplicateTesterName($tester_name)
{
    $table_info = "TBL_TESTER_LIST";
    $query_string = "select tester_name from $table_info where tester_name = $tester_name";
    $result = @mysql_query($query_string) or die (mysql_error());
    $checkTester = mysql_num_rows($result);
    if($checkTester>0)
    {
        echo $message = "Error, please check again."; //I want to pass this
    }
}

在外部js文件中:

function checkTester()
{
    var tester_name = document.getElementById("tester_name").value;
    var page = "database.php";

    var parameters = "&tester_name="+tester_name+"&action=check";
    var xmlhttp = new XMLHttpRequest();

    if(xmlhttp==null)
    {
        alert("Your browser does not support ajax!");
        return false;
    }
    xmlhttp.onreadystatechange=function()
    {
        if(xmlhttp.readyState==4)
        {
            alert("function success."+message); //Alert error message from PHP here
        }
    };
    xmlhttp.open("GET", page+"?"+parameters, true);
    xmlhttp.send(null);
}

2 个答案:

答案 0 :(得分:3)

响应位于XHR对象的responseText字段中,因此您需要执行以下操作:

xmlhttp.onreadystatechange=function()
{
    if(xmlhttp.readyState==4)
    {
        var message = xmlhttp.responseText;
        alert("function success."+message); //Alert error message from PHP here
    }
};

如果您只是返回字符串,则不需要使用JSON。如果您返回一个数组或对象,JSON非常有用。

答案 1 :(得分:0)

你可以通过定义全局变量来实现它,这个值来自php,如下所示。

<script type="text/javascript">
   var message = '<?= $message ?>';
</script>

这是一种简单的方法。