如何将当前表行和JavaScript提示值传递给PHP / MySQL?

时间:2015-09-18 03:34:26

标签: javascript php jquery mysql

我有一个表(多行,3列),一列作为文本,一列作为“删除”链接,一列作为“重命名”链接。像这样:

  1. Hickery dicker dock,鼠标跑上了时钟|删除|重命名

  2. Rudolf the reinderr ......... blah blah blah ................. |删除|重命名

  3. Hickery dicker dock,鼠标跑上了时钟|删除|重命名

  4. Rudolf the reinderr ......... blah blah blah ................. |删除|重命名

  5. 如果用户单击“删除”,我可以使用以下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执行此操作的其他方法。

1 个答案:

答案 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。