从ajax函数

时间:2016-04-26 08:44:08

标签: javascript php jquery ajax

我有一个ajax函数,可以从我的数据库中检索数据并将其显示在我的文本框中。我正在使用JQuery Form Plugin来缩短ajax进程。现在我想要做的是从我从ajax函数调用的php脚本中获取数据。

表单标记为:

<form action="searchFunction.php" method="post" id="searchForm">
  <input type="text" name="searchStudent" id="searchStudent" class="searchTextbox" />
  <input type="submit" name="Search" id="Search" value="Search" class="searchButton" />
</form>

searchFunction.php

中的服务器代码
$cardid = $_POST['searchStudent'] ;
$cardid = mysql_real_escape_string($cardid);
$sql = mysql_query("SELECT * FROM `users` WHERE `card_id` = '$cardid'") or trigger_error(mysql_error().$sql);
$row = mysql_fetch_assoc($sql);

return $row;

处理php的ajax脚本是

$(document).ready(function() {
  $('#searchForm').ajaxForm({
    dataType: 'json',
    success: processSearch
  });
});

function processSearch(data) {
  alert(data['username']); //Am I doing it right here?
}

在PHP中,如果我想调用数据,我只需为数据库创建一个函数,例如echo $row['username']。但是我如何用ajax做到这一点?我对此很新,请解释一下这个过程。

3 个答案:

答案 0 :(得分:0)

$('#Search').click(function (e) {
    e.preventDefault(); // <------------------ stop default behaviour of button
    var element = this;    
    $.ajax({
        url: "/<SolutionName>/<MethodName>",
        type: "POST",
        data: JSON.stringify({ 'Options': someData}),
        dataType: "json",
        traditional: true,
        contentType: "application/json; charset=utf-8",
        error: function () {
                    alert('Unable to load feed, Incorrect path or invalid feed');
                },
                 success: processSearch,
    });
});
 function processSearch(data) {
var username= ($(data).find('#username'));

}

答案 1 :(得分:0)

将输入类型提交更改为按钮。提交将触发表单中的操作,以便重新加载表单。如果您正在执行ajax调用,请将其更改为按钮。

答案 2 :(得分:0)

一切似乎都没问题,除了这一点 -

function processSearch(data) {
   alert(data['username']); //Am I doing it right here?
}

您需要将其更改为 -

function processSearch(data) {
   // data is a JSON object. Need to access it with dot notation
   alert(data.username);
}

<强>更新

您还需要从PHP文件返回JSON响应。像 -

这样的东西
// Set the Content Type to JSON
header('Content-Type: application/json');

$data = [
    "key" => "value"
];

return json_encode($data);

在您的情况下,您可以直接编码$row,如此 -

return json_encode($row);