我在收集从数据库中获取的数据时遇到了一些问题。不知道如何继续。
到目前为止我做了什么:
JQ:
$(document).ready(function(){
$('#submit').click(function(){
var white = $('#white').val();
$.ajax({
type:"POST",
url:"page.php",
data:{white:white}
});
});
});
到目前为止PHP(请求的page.php):
$thing = mysql_real_escape_string($_POST["white"]);
..database connect stuff..
$query = "SELECT * FROM table1 WHERE parameter='$thing'";
if($row = mysql_query($query)) {
while (mysql_fetch_array($row)) {
$data[]=$row['data'];
}
}
我不知道的是,如何发送数据并使用ajax接收它。
请求不成功时的错误怎么办?
针对数据库注入的ajax调用有多安全?
谢谢:)
答案 0 :(得分:7)
您需要success
中的$.ajax()
参数才能在拨打电话后获得回复
$('#submit').click(function(){
var white = $('#white').val();
if(white == '')
{
// display validation message
}
else
{
$.ajax({
type:"POST",
url:"page.php",
data:{"white":white}
success:function(data){
$('#someID').html(data);
}
});
});
page.php
中的回显(HTML标记或变量)将显示在ID为someID
的元素中,最好保留元素为<div>
在page.php
中,您可以使用$_POST['white']
捕获输入元素中输入的值,并使用它来执行您想要的任何数据库操作
答案 1 :(得分:0)
To send out data to you can write following line at the end :
echo json_encode($data);exit;
To receive response and errors when request is not successful in ajax :
jQuery.ajax({
type:"POST",
url:"page.php",
data:{white:white},
asyn: false,
success : function(msg){
var properties = eval('(' + msg + ')');
for (i=0; i < properties.length; i++) {
alert(properties[i]);
}
},
error:function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
答案 2 :(得分:0)
For Feeling more safety do the following things:
1. Open a Session.
2. Detect Referrer.
3. Use PDO Object instead mysql_real_escape_string
4. Detect Ajax call :
if(empty($_SERVER['HTTP_X_REQUESTED_WITH']) ||
strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) !='xmlhttprequest') {
//Is Not Ajax Call!
}