我有一个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做到这一点?我对此很新,请解释一下这个过程。
答案 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);