JQuery AJAX PHP post方法问题

时间:2014-11-14 07:12:51

标签: php jquery mysql ajax

我试图通过AJAX作为请求发布HTML文件的值,并从PHP获取JSON格式的字符串作为响应。

我做了以下

Javascript文件:

$(document).ready(pageLoad);

function pageLoad()
{
     $("#submit").click(submitClick)
}

function submitClick()
{
    var data = {Year:"2005"};
    $.getJSON("db/connect.php", data, fetchData);
}

function fetchData(data)
{
    $.each(data, function(index, element) { 
        $("#content").append(data[index].Name + "<br />");                                                      
            })
}

PHP文件

<?php
$server = "localhost";
$user = "amey";
$pass = "";
$database = "education";

echo $_POST["Year"];

    $conn = mysql_connect($server, $user, $pass) or die("Unable to connect to MySQL");
    mysql_select_db($database, $conn);
    $query = "select * from BabyNames";
    $result = mysql_query($query) or die(error_get_last());

    $json = array();

    while($row = mysql_fetch_array($result))
    {
        $json[] = $row; 
    }

    echo json_encode($json);
    mysql_close($conn);
?>

我无法在PHP文件中检索Year值。我也尝试过使用$ .post和$ .ajax函数。在$ .ajax函数中,当我删除dataType:“json”时,post方法可以工作。

2 个答案:

答案 0 :(得分:0)

请更改代码, 如果你的PHP代码工作正常。

 $(document).ready(function() {
    var pageLoad = function() {
        $("#submit").click(function(){
          submitClick();
        })
    });
    pageLoad();
 });

如果您想要点击“#submit”提交表单/数据,则无需pageLoad功能

 $(document).ready(function() {
        $("#submit").click(function(){
          submitClick();
        });
    });
 });

答案 1 :(得分:0)

$。getJSON()方法执行HTTP GET而不执行POST。你需要使用$ .post()。

$.post(url, dataToBeSent, function(data, textStatus) {
  //data contains the JSON object
  //textStatus contains the status: success, error, etc
}, "json");

click here for solution more solution