在 AJAX 中从当前 URL 发布 id 以从该 id 中选择数据
Posted
技术标签:
【中文标题】在 AJAX 中从当前 URL 发布 id 以从该 id 中选择数据【英文标题】:Post id from current URL in AJAX to select data from that id 【发布时间】:2021-07-31 05:54:01 【问题描述】:我正在尝试将 id 从当前 URL 发送到 select.php
页面,但它显示的 id 未定义并且无法获取任何数据。
我想从 SQL 表中获取索引上级
用于显示获取的上级 ID 的数据。
<script>
$(document).ready(function()
function fetch_data()
$.ajax(
type:'post',
url:"select.php" + id ,
method:"POST",
dataType:"json",
success:function(data)
用于从 AJAX 查询中获取数据的 (select.php) 文件。
但这无法从 URL 中获取 id。
<?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);
?>
用于从索引中获取作为 id 的上级的 SQL db
像这样从上一个 URL 获取 id
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, :
行更改为控制台错误后的错误消息
url:"select.php?id=" + id,
method:"POST",
dataType:"json",
success:function(data)
图片在这里:
显示页面的图片:
【问题讨论】:
url:"select.php" + id
id
这里是什么?为什么要将它附加到文件名?
您没有启动查询字符串或命名 URL 参数。试试url:"select.php?id=" + id
。但目前尚不清楚 id
在 javascript 中实际定义或填充的位置——该变量从何而来?如果您发送的唯一数据是单个查询参数,那么发送 POST 也没有多大意义。
id 指的是上一个url中使用的get id标签,用来获取这个带有链接id url(localhost/mta_bd/pages/issue.php?action=edit%20&%20id=244)的页面
您的代码也容易受到 SQL 注入的攻击。同样,如果你不使用参数,那么使用准备好的语句真的没有意义——它不能保护你。有关如何正确执行此操作的示例,请参阅***.com/questions/60174/…。
@brombeer $_GET['id'] 在您发送 POST 请求时将不可用 ...实际上,如果它在查询字符串上,它将不可用。但是 URL 构造不正确,这就是问题所在 - 请参阅前面的 cmets
【参考方案1】:
您可以使用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
)
【讨论】:
以上是关于在 AJAX 中从当前 URL 发布 id 以从该 id 中选择数据的主要内容,如果未能解决你的问题,请参考以下文章
在 jQuery AJAX Success 中从 MySql 获取特定响应