所以,我有两个文件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页面。
感谢您的帮助
答案 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'];
}
?>