Javascript 在AJAX中发布当前URL的id以从该id中选择数据
我试图将id从当前URL发送到select.php页面,但它显示的id未定义,无法获取任何数据。 我想从SQL表中获取索引suporder 用于显示获取的suporder id的数据 图片如下: 显示页面的图像:Javascript 在AJAX中发布当前URL的id以从该id中选择数据,javascript,php,jquery,sql,ajax,Javascript,Php,Jquery,Sql,Ajax,我试图将id从当前URL发送到select.php页面,但它显示的id未定义,无法获取任何数据。 我想从SQL表中获取索引suporder 用于显示获取的suporder id的数据 图片如下: 显示页面的图像: 您可以使用URLSearchParams从当前url轻松检索id,然后使用它为ajax创建数据对象 const params = new URLSearchParams(location.search); const data ={ id: params.get('id')}
您可以使用URLSearchParams从当前url轻松检索id,然后使用它为ajax创建数据对象
const params = new URLSearchParams(location.search);
const data ={ id: params.get('id')}
$.getJSON('select.php', data, function(response){
// do stuff with response
})
url:select.php+id这里的id是什么?为什么要将其附加到文件名?您没有启动查询字符串或命名URL参数。尝试url:select.php?id=+id。但不清楚JavaScript中实际在哪里定义或填充了id——该变量起源于哪里?此外,如果您发送的唯一数据是一个查询参数,那么发送帖子也没有多大意义。id是指在上一个url中使用的get id标记,用于获取具有链接id url的此页面。此外,您的代码容易受到SQL注入的攻击。同样,如果您不同时使用参数,那么使用预先准备好的语句是没有意义的——它不会保护您。有关如何正确执行此操作的示例,请参阅。@brombeer$\u GET['id']在您发送POST请求时将不可用。。。事实上,如果它在查询字符串上,它会。但是URL的构造不正确,这就是问题所在——请参阅前面的评论
<?php
$connect = new PDO("mysql:host=localhost;dbname=mta_bd", "root", "");
$query = 'SELECT * FROM all_stores where suporder='.$_GET['id'];
$statement = $connect->prepare($query);
if($statement->execute())
{
while($row = $statement->fetch(PDO::FETCH_ASSOC)){
$data[] = $row;
}
echo json_encode($data);
}
?>
echo '<td align="right">
<a type="button" class="btn btn-primary bg-gradient-primary" href="issue.php?id='.$row['suporder'] . '"><i class="fas fa-fw fa-list-alt"></i> Enter Data</a>
url:"select.php?id=" + id,
method:"POST",
dataType:"json",
success:function(data)
const params = new URLSearchParams(location.search);
const data ={ id: params.get('id')}
$.getJSON('select.php', data, function(response){
// do stuff with response
})