我刚刚开始研究AJAX,我已经遇到了一些麻烦
我使用users
字段创建了数据库和表id, name, email
然后我创建了php文件db.php
来连接数据库
<?php
$dblocation = "localhost";
$dbname = "test5";
$dbuser = "root";
$dbpasswd = "";
$dbcnx = @mysql_connect($dblocation, $dbuser, $dbpasswd);
if (!$dbcnx) {
exit ( "<p>Error.</p>" );
}
if ( ! @mysql_select_db($dbname, $dbcnx)) {
exit ( "<p>Error.</p>" );
}
?>
,创建文件get-user.php
以返回ajax-request
<?php
include ("db.php");
$result = mysql_query("SELECT name, email FROM users WHERE id='$id'", $dbcnx);
return $result;
?>
这是我的index.php
文件
<!DOCTYPE html>
<html>
<head>
<title>index</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(document).ready(function () {
$('#button-1').on('click', function () {
var id = $('#user-id').val();
$.ajax({
type: 'GET',
url: 'get-user.php',
datatype: "html",
data: id,
success: function (data) {
alert(data);
}
});
});
});
</script>
</head>
<body>
<h2>Title</h2>
<input name="id" id="user-id" type="text" size="15" />
<button id="button-1">Get data</button>
</html>
我想输入数字,点击按钮,从数据库中获取有关用户的信息,但我只得到空警报。如何使它工作?
很抱歉,我只是新手。
答案 0 :(得分:3)
需要进行以下更改:
Ajax:data: id,
到data: "{id : id},
PHP:return $result;
到echo $result;
PHP&amp; MySQL的:
$result = mysql_query("SELECT name, email FROM users WHERE id='$id'", $dbcnx);
$row = mysql_fetch_array($result);
return $result[0] . ";" . $row[1];
答案 1 :(得分:1)
传递参数的正确方法是
$.ajax({
type: 'GET',
url: 'get-user.php',
datatype: "html",
data: { id: id },
success: function (data) {
alert(data);
}
});
在php
中返回像这样的值
<?php
include ("db.php");
$result = mysql_query("SELECT name, email FROM users WHERE id='$id'", $dbcnx);
$fetch=mysql_fetch_array($result);
return $fetch["email"];
?>
答案 2 :(得分:1)
试试这个,
<强>使用Javascript:强>
$.ajax({
type: 'GET',
url: 'get-user.php',
datatype: "html",
data: {id:id},
success: function (data) {
alert(data);
}
});
get-user.php中的:
<?php
if(isset($_GET['id'])){
include ("db.php");
$id = $_GET['id'];
....
}
?>
注意:使用mysqli_ *函数或PDO而不是mysql_ *函数(不建议使用)
答案 3 :(得分:1)
你非常接近,但有一些事情你需要改变。
首先在你的ajax调用中:
$.ajax({
type: 'GET',
url: 'get-user.php',
datatype: "html",
data: {'id': id},
success: function (data) {
alert(data);
}
});
注意data
选项中的更改。
其次,在get-user.php
内,您使用$_GET['id']
来引用该值。
最后,您需要return
代替echo
。
答案 4 :(得分:1)
Ajax代码
data: {id: id};
php code
使用pdo而不是mysql_query,你在mysql_query
上使用的代码不会阻止sql注入。
include ("db.php");
$id = $_GET['id'];
$stmt = $pdo->prepare('SELECT name, email FROM users WHERE id = :id');
$stmt->execute(array('id' => $id));
$result = $stmt->get_result();
echo $result;
或使用mysqli
$stmt = $dbConnection->prepare('SELECT name, email FROM users WHERE id = ?');
$stmt->bind_param('id', $id);
$stmt->execute();
$result = $stmt->get_result();
echo $result;