PHP函数不适用于Ajax

时间:2017-08-28 21:01:59

标签: javascript php ajax

我有一些按钮,然后单击JS:

<button id="trigger">Send</button>

和JS调用简单的动作

$('#trigger').on("click", function(event){ 
                    jQuery.ajax({
                        type: "POST",
                        url: 'functions.php',
                        dataType: 'json',
                        data: {functionname: 'add', arguments: [1, 2]},

                        success: function (obj, textstatus) {
                            alert('test success');
                        },
                        complete: function (obj, textstatus) {
                            alert('test complete');
                        }
                    });
                });

在上面的ajax中,我将functions.php与其他简单函数放在一起:

<?php

$message = "PHP Funtion Alert";
echo "<script type='text/javascript'>alert('$message');</script>";

?>

但是,我只从警报中调用警报(&#39;测试完成&#39;); 如何从PHP文件调用警报?

PS。这只是一个例子。在PHP文件中将有一些DB函数。

1 个答案:

答案 0 :(得分:1)

你期待JSON,因此

dataType: 'json',

然而,你要返回一个脚本标签吗?

echo "<script type='text/javascript'>alert('$message');</script>";

这是一个错误。你想要的是返回有效的 JSON

$message = array("message" => "PHP Funtion Alert");
echo json_encode($message);

然后抓住ajax函数

jQuery.ajax({
  type     : "POST",
  url      : 'functions.php',
  dataType : 'json',
  data     : {
    data : 'to be sent'
  }
}).done(function(data) {
  console.log(data.message);
}).fail(function() {
    console.log(arguments);
});