我目前正在使用 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/