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

标签 javascript jquery

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

Javascript

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

HTML

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

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

最佳答案

如果您需要 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 提交方法来触发表单上的提交事件。这基本上相当于按普通表单上的“提交”按钮。

尝试一下,它应该可以完美地工作。

关于javascript - 如何使用 JavaScript 在页面之间发送值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/768532/

相关文章:

javascript - 需要 2 个单击事件监听器来由 2 次不同的单击触发。 (JS)

javascript - 将选择框事件中添加的动态表单元素依次对齐到选择框上方的页面顶部

javascript - 从ajax页面获取js变量

javascript - 箭头函数中的“this”关键字

javascript - PhantomJS/CasperJS 注入(inject)带有参数的脚本

javascript - 如果JS中存在值,如何根据日期按降序对数组进行排序?

javascript - 将 JQuery 变量设置为 HTML 元素属性子字符串

javascript - React, Redux - 使用 Redux 修改父组件

javascript - 使用 .html() 方法调用 jQuery qTip 后无法正常工作

javascript - jquery html() 方法无法有效插入 html 代码