我正在构建一个管理系统,管理员可以从中选择数据库表中的项目并更新详细信息。为实现这一点,我在两页上有两种形式。第一种形式是从表中选择项目并将其传递给第二页,我将使用该ID从表中使用php获取详细信息。我想用javascript做这个,所以它不会刷新页面。我的问题是如何传递这个值?我使用以下代码,但它无法正常工作。
HTML
<div id="result"></div>
<form action="update_item.php" id="update" method="post" >
<select name="selected" class="form-control" id="myItem" required>
<option>Select item</option>
<?php
<!-- PHP script to select the item -->
?>
</select>
<button id="submit">Select</button>
</form>
JAVASCRIPT
$(document).ready(function() {
$("#submit").click(function() {
var chat = $('#myItem').val();
if(chat=='')
{
alert("Please select an item!");
}
else{
$.ajax({
type: "POST",
url:"update_item.php",
data:{
data:chat,
},
success: function (msg) {
//alert(msg):
$('#result').html(msg);
},
error: function(){
alert('error');
}
});
}
});
});
PHP 第二页
$item_id = $_POST['data'];
$get_item = "select * from items where item_id='$item_id'";
<--PHP script continues-->
答案 0 :(得分:0)
如果您不更改表单之间的页面,您应该能够在客户端创建一个存储必要数据的变量。由于第二个表单加载到同一个环境中,因此第一个表单中的任何变量仍然存在。
从您的示例中,我猜测聊天是您尝试在第二种形式中使用的数据。现在它是click函数的本地(一旦该函数完成变量消失)。您可以将该变量的声明移动到全局范围(在document.ready之外),或者在成功回调中按预期使用它。 (从您的示例中不清楚您要对此数据执行的操作)
答案 1 :(得分:0)
您可以添加隐藏字段并将此输入发送回服务器:
<input type="hidden" name="something" value="<?= $_SERVER['id'] ?>" />
然后通过via:
访问它 $_SERVER['id']