如何使用javascript在页面之间发送值?

时间:2009-04-20 14:33:08

标签: javascript jquery

我目前正在使用javascript代码使我的表格中的整行可以点击。一旦单击该行,就会运行一个函数,我想知道我可以使用什么来重定向到PHP页面,最好发送一个post变量。我的猜测是AJAX,但我不确定它是如何工作的。

我的Javascript功能:

  function DoNav(theUrl)
  {
  document.location.href = theUrl;
  }

我的HTML:

<tr onclick="DoNav('myphpscript.php');">

我可以访问jQuery,因此这也是一个选项。感谢任何帮助,谢谢!

4 个答案:

答案 0 :(得分:4)

如果您需要POST数据(不使用GET),一个简单的选择是动态创建表单元素,使用您需要的值附加输入元素并提交它。如果你使用jQuery,你可以这样做:

$(function() { 
    $('tr').click(function() {
        var mail_id = /* get the mail id of this row... not sure where since I dont' have the HTML */
        $('body').append('<form method="post" action="myphpscript.php" id="donavform" style="display:none;"></form>');
        $('#donavform').append('<input type="hidden" name="mid" value="'+mail_id+'" />');
        $('#donavform').submit();
    });
});

希望有道理。如果没有,请告诉我!这是,好吧......

<强>说明: 第一行是jQuery快捷方式,说“文档加载完成后......”因此,当页面加载完成后,我将把一个事件监听器附加到所有元素在文件中。当单击其中一个元素时,我们可以提取与该特定表行相关的邮件ID(以及您需要的任何其他内容)。所以,如果你有像这样的HTML:

<!-- 8435 is the mail ID in this example. -->
<tr id="row3">8435</tr>

然后我们可以像这样提取mail_id变量:

var mail_id = $(this).html();

现在,我们要将一个隐藏的表单元素附加到HTML正文的末尾(因为它隐藏了所以我们把它放在哪里并不重要......所以,结束很好)。在这个表单元素中,我们将方法设置为POST,并将操作设置为POST所需的任何php文件。我还设置了一个ID,以便在下一步中轻松引用。

我现在要使用它的ID选择新创建的表单元素,并且我将使用适当的名称值对添加一个新的隐藏输入元素。

$('#donavform').append('<input type="hidden" name="mid" value="'+mail_id+'" />');

最后,我将使用 jQuery JavaScript提交方法来触发表单上的提交事件。这基本上相当于按正常表格上的“提交”按钮。

尝试一下,它应该完美无缺。

答案 1 :(得分:3)

如果您要转到新页面,只需像往常一样提交表单。将数据放在表单字段中(如果需要,隐藏)。除非你想留在同一页面并在后台发布,否则不需要Ajax,jQuery或任何其他魔法。

答案 2 :(得分:2)

如果数据量不是很大,请使用查询字符串...

&lt; tr onclick =“DoNav('myphpscript.php ?key = value ');”&gt;

或者,如果您需要自然的HTTP帖子,您可以使用Javascript ...

以编程方式提交表单
onclick="document.forms[0].submit();"

答案 3 :(得分:0)

您可以在Cookie中发送数据。有一个很好的jQuery插件,可以帮助在jQuery命名空间中设置cookie。

http://plugins.jquery.com/project/cookie