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

我正在尝试将数据发布到PHP文件,但我无法从PHP文件接收任何数据。 让我添加代码。
这是我的jQuery函数:</ p>

  $(document).ready(function(){

$(function(){
$ ('a [class =“some-class”]')。click(function(){

var somedata = $(this).attr(“id”);

$ .ajax({\ n url:“foo.php”,
类型:“POST”,
data:“id =”+ somedata,

成功:function(){
$(“#someid”)。html( );
},
错误:function(){
alert(“AJAX请求失败”);
}
});
});
});
});

</ code> </ pre>

这是我的PHP文件:</ p>

 &lt;?php 
$ data = $ _POST [' id'];

$ con = mysqli_connect('localhost','root','','somedatabase');
if(!$ con){
die('无法连接:'。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 );

?&gt;
</ code> </ pre>

这就是我在HTML文件中的内容:</ p>

 &lt; p id =“someid”&gt;&lt; / p&gt; 

&lt; a href =“#page2”class =“some-class”id =“1”&gt ; Data1&lt; / a&gt;
&lt; a href =“#page2”class =“some-class”id =“2”&gt; Data2&lt; / a&gt;
</ code> </ pre>

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

展开原文

原文

I'm trying post data to PHP file but i can't receive any data from PHP file. Let me add codes. This is my jQuery function:

$(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");
      }
    });
    });
    });
});

This is my PHP file:

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

?>

This what i have in HTML file:

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

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

Note: This website is horizontal scrolling and shouldn't be refreshed. When i'm clicking links (like Data1) it's going to another page without getting data from PHP file

duancenxiao0482
duancenxiao0482 提出的任何解决方案都有帮
接近 6 年之前 回复
dongliqin6939
dongliqin6939 你需要添加?在.php网址后的ururl:“foo.php?”,
接近 6 年之前 回复
doujing5937
doujing5937 这是一个POST请求-.-不要使用数据:“id=”+somedata,但是像id:somedata
接近 6 年之前 回复

5个回答



您遇到一些问题:</ p>


  1. 您没有使用数据 正如其他答案所述:
    success:function(data){
    $(“#someid”)。html(data);
    },</ code> </ li>
    < li>您没有取消默认点击操作,因此您的链接将被跟踪:
    $('a [class =“some-class”]')。click(function(e){
    e。 preventDefault();
    ... </ code>; </ li>
  2. 由于id是整数,你可以使用 data:“id =”+ somedata,</ code>虽然发送 如果 somedata </ code>包含需要转义的字符,则对象会更安全:
    data:{“id”:somedata},</ code>; </ li>
    < 你有一个SQL注入问题。你应该将变量转换为整数或使用预准备语句:
    $ data =(int)$ _POST ['id']; </ code>; </ li>
  3. 正如另一个答案中所提到的,你有两个 $(document).ready()</ code>函数,一个包装另一个。你只需要一个。</ li>
    </ ol>
    </ div>

展开原文

原文

You have a few problems:

  1. You are not using the data as mentioned in the other answers:
    success: function(data){ $("#someid").html(data); },
  2. You are not cancelling the default click action so your link will be followed:
    $('a[class="some-class"]').click(function(e){ e.preventDefault(); ...;
  3. As the id's are integers, you can use data: "id=" + somedata, although sending an object is safer in case somedata contains characters that need to be escaped:
    data: {"id": somedata},;
  4. You have an sql injection problem. You should cast the variable to an integer or use a prepared statement:
    $data = (int) $_POST['id'];;
  5. As also mentioned in another answer, you have two $(document).ready() functions, one wrapping the other. You only need one.

dongye9071
dongye9071 这是另一个问题,但简而言之,您可以返回包含所需内容的json,并在success()函数中解析/使用它。
接近 6 年之前 回复
dongzhuang2030
dongzhuang2030 谢谢! 唯一的问题是忘记将'data'添加到function和html中。 我想问另一个问题,这个函数从PHP文件获取每个数据,但我想为每个<p>采取大约5个变量我该怎么做?
接近 6 年之前 回复



  success:function(){
$(“#someid”)。html();
},\ n </ code> </ pre>

应为:</ p>

  success:function(data){
$(“#someid”)。 html(数据);
},
</ code> </ pre>
</ div>

展开原文

原文

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

should be:

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

drf97973
drf97973 非常感谢你现在的工作! 我想问另一个问题,这个函数从PHP文件获取每个数据,但我想为每个<p>采取大约5个变量我该怎么做?
接近 6 年之前 回复



您应该成功添加参数</ p>

  success:function(data){/  /添加数据参数
console.log(data);
$(“#someid”)。html(data);
},
</ code> </ pre>

data获取你在PHP结束时回显的值。</ p>
</ div>

展开原文

原文

You should add parameter in success

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

The data get the values what you echo in PHP end.



这:</ p>

  success:function(data){
$(“ #someid“)。html(数据);
},
</ code> </ pre>

你准备好了两个文件,所以摆脱:</ p>
\ n

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

});
</ code> </ pre>
</ div>

展开原文

原文

This:

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

and you have two document ready, so get rid of:

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

});



  data:“id =”+ somedata,
</ code> </ pre>

将其更改为:</ p>

  data:{id:somedata} 
</ code> </ pre>
</ div>

展开原文

原文

data: "id=" + somedata,

Change it to:

data: { id : somedata }

douqihua6212
douqihua6212 somedata可能是查询字符串的无效部分,因此该解决方案可以解决此问题。
接近 6 年之前 回复
douqiu0351
douqiu0351 查询字符串对数据完全有效
接近 6 年之前 回复
duanmianhong4893
duanmianhong4893 它可以是一个字符串,请参阅docs
接近 6 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐