AJAX不使用Jquery从PHP文件中获取数据

时间:2014-12-16 14:01:12

标签: javascript php jquery mysql ajax

我尝试将数据发布到PHP文件但我无法从PHP文件接收任何数据。我来添加代码。 这是我的jQuery函数:

$(document).ready(function () {

$(function () {
$('a[class="some-class"]').click(function(){

   var somedata = $(this).attr("id");

   $.ajax({
      url: "foo.php", 
      type: "POST",
      data: "id=" + somedata,

      success: function(){
          $("#someid").html();
      },
      error:function(){
          alert("AJAX request was a failure");
      }
    });
    });
    });
});

这是我的PHP文件:

<?php
$data = $_POST['id'];

$con = mysqli_connect('localhost','root','','somedatabase');
if (!$con) {
  die('Could not connect: ' . mysqli_error($con));
}

mysqli_select_db($con,"database");
$sql="SELECT * FROM sometable WHERE id = '".$data."'";
$result = mysqli_query($con,$sql);


while($row = mysqli_fetch_array($result)) {

 echo $row['info'];

 }

mysqli_close($con);

?>

这就是我在HTML文件中的内容:

<p id="someid"></p>

<a href="#page2" class="some-class" id="1">Data1</a>
<a href="#page2" class="some-class" id="2">Data2</a>

注意:此网站是横向滚动,不应刷新。当我点击链接(如Data1)时,它会转到另一个页面而不从PHP文件中获取数据

5 个答案:

答案 0 :(得分:2)

你有一些问题:

  1. 您没有使用其他答案中提到的数据:
    success: function(data){ $("#someid").html(data); },
  2. 您没有取消默认点击操作,因此会关注您的链接:
    $('a[class="some-class"]').click(function(e){ e.preventDefault(); ...;
  3. 由于ID是整数,您可以使用data: "id=" + somedata,,但如果somedata包含需要转义的字符,则发送对象会更安全:
    {{1} };
  4. 你有一个SQL注入问题。您应该将变量强制转换为整数或使用预准备语句:
    data: {"id": somedata},;
  5. 另外在另一个答案中提到,你有两个$data = (int) $_POST['id'];函数,一个包装另一个。你只需要一个。

答案 1 :(得分:1)

success: function(){
          $("#someid").html();
      },

应该是:

success: function(data){
          $("#someid").html(data);
      },

答案 2 :(得分:1)

您应该成功添加参数

success: function(data){ //Added data parameter
      console.log(data);
      $("#someid").html(data);
  },

数据获取您在PHP结束时回显的值。

答案 3 :(得分:1)

此:

  success: function(data){
      $("#someid").html(data);
  },

你准备好了两份文件,所以摆脱:

$(document).ready(function () { ...

});

答案 4 :(得分:0)

data: "id=" + somedata,

将其更改为:

data: { id : somedata }