0

我在收集从数据库中获取的数据时遇到了一些问题。不知道如何继续。

到目前为止我做了什么:

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 调用对数据库注入的安全性如何?

谢谢 :)

4

3 回答 3

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);
       } 

    });

  });

无论您在其中回显什么(HTML 标记或变量)page.php都将显示在 ID 为 的元素中someID,最好将元素保持为<div>

page.php中,您可以通过使用捕获输入元素中输入的值,$_POST['white']并使用它来执行您想要执行的任何 DB 操作

于 2012-08-01T11:42:14.830 回答
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);
     }
于 2012-08-01T12:25:53.360 回答
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!
   }
于 2014-03-12T04:26:46.650 回答