在 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。但目前尚不清楚 idjavascript 中实际定义或填充的位置——该变量从何而来?如果您发送的唯一数据是单个查询参数,那么发送 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 中选择数据的主要内容,如果未能解决你的问题,请参考以下文章

AJAX没有回应[关闭]

在 jQuery AJAX Success 中从 MySql 获取特定响应

Fullcalendar删除事件Ajax / PHP

如何在反应中从http url获取id

需要在 jQuery 中从 AJAX 将所有 JSON 推送到一个数组中

如何在 Flutter 中从 Firebase 获取当前用户 ID