我正在尝试将数据发布到 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 文件获取数据
最佳答案
你有几个问题:
- 您没有使用其他答案中提到的数据:
成功:函数(数据){ $("#someid").html(数据); },
- 您没有取消默认的点击操作,因此您的链接将被访问:
$('a[class="some-class"]').click(function(e){ e.preventDefault(); ...
; - 由于 id 是整数,您可以使用
data: "id="+ somedata,
尽管发送对象更安全,以防somedata
包含需要的字符转义:data: {"id": somedata},
; - 你有一个sql注入(inject)问题。您应该将变量转换为整数或使用准备好的语句:
$data = (int) $_POST['id'];
; - 正如另一个答案中提到的,您有两个
$(document).ready()
函数,一个包装另一个。你只需要一个。
关于javascript - AJAX 不使用 Jquery 从 PHP 文件获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27506373/