【问题标题】:Post id from current URL in AJAX to select data from that id在 AJAX 中从当前 URL 发布 id 以从该 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 注入的攻击。同样,如果你不使用参数,那么使用准备好的语句真的没有意义——它不能保护你。有关如何正确执行此操作的示例,请参阅stackoverflow.com/questions/60174/…
  • @brombeer $_GET['id'] 在您发送 POST 请求时将不可用 ...实际上,如果它在查询字符串上,它将不可用。但是 URL 构造不正确,这就是问题所在 - 请参阅前面的 cmets

标签: javascript php jquery sql ajax


【解决方案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
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 2018-11-07
    • 1970-01-01
    • 2013-04-26
    • 1970-01-01
    相关资源
    最近更新 更多