我有一个表(多行,3列),一列作为文本,一列作为“删除”链接,一列作为“重命名”链接。像这样:
Hickery dicker dock,鼠标跑上了时钟|删除|重命名
Rudolf the reinderr ......... blah blah blah ................. |删除|重命名
Hickery dicker dock,鼠标跑上了时钟|删除|重命名
Rudolf the reinderr ......... blah blah blah ................. |删除|重命名
如果用户单击“删除”,我可以使用以下PHP代码从结果集中删除该特定行:
echo '<td><a href="delete.php?id='.mysql_result($result, $i, 'code_id').'">Delete</a></td>';
但是,当用户单击“重命名”链接时,我想将JavaScript提示框中的行ID和新/重命名文本传递到“rename.php”页面。我有以下用于提示的JavaScript代码,但我无法确定如何将这两个值(重命名为文本 + 所选行ID)传递给PHP代码。
使用提示获取新文本的JavaScript:
function renameTitle(){
var rename=prompt("Enter new title:");
if (rename!=null && rename!="") {
$.post("rename.php", { rename: rename});
}
}
PHP(rename.php):
echo '<td><a onclick="javascript:renameTitle();"
href="rename.php?id='
.mysql_result($result, $i, 'code_id')
.'&rename=.....something here.....">Rename</a></td>';
我发现这个有点相关的答案,但我需要将这两个值都传递给PHP,而不仅仅是提示框中的值或只是行ID。
Saving javascript prompt() to mysql
欢迎使用jQuery / JavaScript / PHP执行此操作的其他方法。
答案 0 :(得分:1)
您向rename.php
发出了两个请求。首先是jQuery.post()
仅包含rename
值的Ajax请求,然后您将id
作为GET
参数重定向到页面。
这两个数据永远不会聚在一起,因为请求完全是分开的。
您需要在一个请求中传递这两个值。
您可以采用的一种方法是将id
作为参数传递给renameTitle
函数,并将其发送到$.post
:
JavaScript函数:
function renameTitle(id){
var rename=prompt("Enter new title:");
if (rename!=null && rename!="") {
$.post("rename.php", { id: id, rename: rename });
}
}
PHP位:
echo '<td><a onclick="javascript:renameTitle(' .
mysql_result($result, $i, 'code_id') .
');" href="">Rename</a></td>';
注意:不推荐使用mysql
扩展程序,因此您应该使用mysqli
代替或切换到PDO。