首页 > 解决方案 > Ajax undefined id PHP post

问题描述

所以,我有两个文件 index.php 和 edit.php

主要是我想从 index.php 发送和获取 id 变量并在 edit.php 中打印 echo 以学习 ajax,但我已经尝试了互联网上的每一个教程,我跟着他们,不幸的是我不知道为什么我会收到这个错误,顺便说一下这里的代码:

索引.php

<?php  
 include ('connection.php');  
 $query ="SELECT * FROM buku ORDER BY id ASC";  
 $result = mysqli_query($con, $query);  
 ?> 
<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="jquery.js"></script>
    <title></title>
</head>
<body>
        <table>  
            <thead>  
             <tr>  
                <td>Id</td>
                <td>No Buku</td>  
                <td>Nama Buku</td>   
                <td>Tahun Terbit</td> 
                <td>Action</td>                                
            </tr>  
            </thead>                    
            <?php  
            while($row = mysqli_fetch_array($result))  
            { ?>  
                <tr>  
                    <td><?php echo $row['id'] ?></td> 
                    <td><?php echo $row['nobuku'] ?></td> 
                    <td><?php echo $row['namabuku'] ?></td> 
                    <td><?php echo $row['tahunterbit'] ?></td>  
                    <td><button type="buton" class="edit" id="<?php echo $row['id'] ?>">Edit</button>
                    </td>  
                </tr>
            <?php
            };
            ?>    
        </table> 

       <div class="tampil"></div>

        <script type="text/javascript">
        $(document).on('click', '.edit', function(){
           var id = $(this).attr("id");
            $.ajax({
             type:"post",
             url:"edit.php",    
             data:{id:id},
             success:function(data){
               $('.tampil').load("edit.php");
             }
            });
          });
        </script>

</body>
</html>
</body>
</html>

这是edit.php

<?php  
 include ('connection.php');  
 $id = $_POST['id'];
 echo $id;
?> 

问题是,当我单击按钮 id=edit 时,在我的 index.php 中总是发送未定义的 id,这意味着 id 变量没有正确发送,但是当我将 ajax 部分编辑为警报(id)时,它打印了 id 变量,所以问题是我不知道为什么它不能将 id 变量发送到 edit.php 页面。

谢谢你的帮助

标签: phpjqueryajaxvariables

解决方案


问题是您首先使用 ajax 加载 edit.php 并将其发送给它。但是,在您加载了 ajax 请求后,您再次加载了 edit.php,这次没有 id。

您已经在 ajax 请求中获得了响应,您只需使用它。

<script type="text/javascript">
    $(document).on('click', '.edit', function(){
       var id = $(this).attr("id");
        $.ajax({
            type:"post",
            url:"edit.php",    
            data:{id:id},
            success:function(data){
                $('.tampil').html(data);
            }
        });
    });
</script>

推荐阅读