代码之家  ›  专栏  ›  技术社区  ›  Chris Bier

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

  •  2
  • Chris Bier  · 技术社区  · 17 年前

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

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

    HTML

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

    我可以访问jQuery,所以这也是一个选项。感谢您的帮助,谢谢!

    4 回复  |  直到 6 年前
        1
  •  4
  •   KyleFarris    17 年前

    如果需要发布数据(而不是使用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>
    

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

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

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

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

    试试看,它应该能完美地工作。

        2
  •  3
  •   Diodeus - James MacFarlane    17 年前

    如果您要进入新页面,只需像往常一样提交表单。将数据放在表单字段中(如果需要,则隐藏)。无需使用Ajax、jQuery或任何其他魔法,除非您希望保持在同一页面上并在后台发布。

        3
  •  2
  •   Josh Stodola    17 年前

    如果数据量不是非常大,请使用查询字符串。。。

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

    或者,如果您需要一个自然的HTTP post,您可以使用Javascript以编程方式提交表单。。。

    onclick="document.forms[0].submit();"