Ajax未定义ID PHP帖子

时间:2018-06-30 09:05:14

标签: php jquery ajax variables

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

主要是我想从index.php发送并获取id变量,并在edit.php中打印echo 学习ajax的方法,但是我已经尝试了Internet上的每个教程,但我都遵循了它们,很遗憾,我无法弄清楚为什么会出现此错误,原因是代码如下:

Index.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页面。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

问题是您首先要用ajax加载edit.php并将其ID发送给它。但是,然后,在加载了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>

答案 1 :(得分:0)

将edit.php更改为此

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="content__article-body">

  <p>some paragraph <span>some span</span></p>

  <div>some div</div>

  <aside>an aside <div>some div in aside</div></aside>

</div>

<?php  
    include ('connection.php');  
     if (isset($_POST['id'])){
       echo $_POST['id'];
   }
    ?>