用ajax调用php脚本

时间:2015-03-02 02:03:50

标签: javascript php jquery ajax html5

我已经有了这个简单的页面来了解ajax的工作原理,但是我还没有能够执行指定的php文件并获得成功。 这是代码,解释的额外要点:

html页面:

<html>
<head>
  <meta charset="utf-8">
</head>
<body>
  <button onclick="addToDb()">click me!</button>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1./jquery.min.js"></script>
  <script src="js/addtodb.js"></script>
</body>
</html>

js script:

function addToDb()
{
    var source = "SoundCloud";
    var partyKey = "4";
    var id = "0987654321";
    //window.alert("check your db"); // this is called as expected
    jQuery.ajax({
        type: 'POST',
        // correctly finds the script but never executes it
        url: 'PHP/functionFilter.php',
        dataType: "json",
        data: {functionname: 'addSong'},
        success: function(response) { window.alert(response); }
    });
};

php文件:

<?php
echo "".$_POST['functionname'];
?>

注意我没有收到任何错误。

3 个答案:

答案 0 :(得分:0)

您正在使用dataType“json”发送数据。当你回响时,你需要对数据进行编码。

$array = array("success" => true, "message" => "hello world");
echo json_encode($array);

答案 1 :(得分:0)

在你的php代码上试试这个,

<?php 
    echo json_encode(array(isset($_POST['functionname']) ? $_POST['functionname'] : "error" ));
?>

答案 2 :(得分:0)

我的问题的累积解决方案

$anArray;
if (isset($_POST['functionname']))
{$anArray = array('message' => $_POST['functionname']);}
else
{$anArray = array('message' => "error");}
echo json_encode($anArray);