【发布时间】:2013-07-16 08:26:53
【问题描述】:
在过去的 2 周里,我一直在疯狂地试图让它发挥作用。我正在调用 MySQL Db,并在表中显示数据。在此过程中,我正在创建删除和编辑记录的 href 链接。删除会发出警报并保持在同一页面上。 EDIT 链接将 POST 数据然后重定向到 editDocument.php
这是我的 PHP:
<?php
foreach ($query as $row){
$id = $row['document_id'];
echo ('<tr>');
echo ('<td>' . $row [clientName] . '</td>');
echo ('<td>' . $row [documentNum] . '</td>');
echo "<td><a href='**** I NEED CODE HERE ****'>Edit</a>";
echo " / ";
echo "<a href='#' onclick='deleteDocument( {$id} );'>Delete</a></td>";
// this calls Javascript function deleteDocument(id) stays on same page
echo ('</tr>');
} //end foreach
?>
我尝试了(没有成功)AJAX 方法:
<script>
function editDocument(id){
var edit_id = id;
$.ajax({
type: 'POST',
url: 'editDocument.php',
data: 'edit_id='edit_id,
success: function(response){
$('#result').html(response);
}
});
}
</script>
我一直在 editDocument.php 上使用<? print_r($_POST); ?> 来查看 id 是否已发布。
我意识到 jQuery/AJAX 是我需要使用的。我不确定是否需要使用onclick、.bind、.submit 等。
这是我需要的代码的参数:
- 发布 $id 值:
$_POST[id] = $id - 重定向到 editDocument.php(我将在其中使用 $_POST[id])。
- 不影响页面上的其他
<a>或任何其他标签。 - 如果需要,我希望 AJAX “虚拟”创建任何
<form>。我不 想把它们放在我的 PHP 代码中。 - 我不想使用按钮。
- 我不想使用 $_GET。
我不知道我错过了什么。我一直在搜索 stackoverflow.com 和其他网站。我一直在尝试示例代码。我认为我“不能透过树木看到森林”。可能是另外一双眼睛。请帮忙。
提前谢谢你。
更新:
根据 Dany Caissy 的说法,我不需要使用 AJAX。我只需要 $_POST[id] = $id;并重定向到editDocument.php。然后我将在 editDocument.php 上使用查询来创建一个粘性表单。
【问题讨论】:
-
为什么不简单链接到
edit.php?id=123?这里的 GET 有什么问题? -
您遇到了什么错误?检查您的 javascript 错误日志和 php 错误日志。此外,您发送的是 POST 变量
edit_id,而不是您说想要的id。 -
否则我想你可以使用jQuery动态创建一个表单,设置动作并创建一个带有id的隐藏字段,然后提交表单。但是 Ajax 无法满足您的需求。
-
另外,不确定您是否可以像这样为
data传递字符串参数...尝试data: {id: edit_id},而不是data: 'edit_id='edit_id, -
尝试在您尝试的脚本中将
$('#result').html(response);更改为$('html').html(response);。看起来您正在发送正确的数据并获得完整的页面,那么为什么不将当前页面替换为新页面呢? (我不肯定会正确替换当前页面,您最终可能会在自己中嵌套 html 标签)