我需要在调用时将 javascript 字符串发送到 php 文件。我知道服务器端/客户端关系,但我猜这种情况有点不同。 该网站的目的是让用户在 INPUT 标签(其中很多)上插入值,并通过 PHPmailer 通过电子邮件发送它们。问题是,我不希望发送任何空白输入,并且我希望在电子邮件中的值之前出现一个“标签”。我想到的最好的解决方法是将我想要的所有内容插入 JS 字符串,并在用户提交表单时让 phpmailer 拾取它。
抱歉说得太长了,但如果您认为有比我的解决方案更好的解决方案,请说出来。
无论如何,这是有问题的代码。
<form name="contactform" method="post" action="mailer.php">
我环顾四周,似乎我可以通过类似于此的函数发送这个变量(我测试过并且工作正常):
var str = "This is a String variable";
function redirect(){
window.location.href = "mailer.php?values=" + str;
}
如果我想获取由表单的 ACTION 属性发送的变量(如果我想使用 $_POST 获取一些变量,我需要提交按钮,对吗?),我该怎么做?
只是为了帮助您形象化它,这或多或少是我想要的:
<form name="contactform" method="post" action="mailer.php$values"+str>
预先感谢您的所有回答和建议。
@edit:我刚刚意识到我基本上要问的是:如何在访问 php 页面之前更改 SUBMIT 按钮的 ACTION?
我只能在发送之前完成此字符串的编辑。或者我可以在每次输入失去焦点时重新编写它,但我不认为每次更改时重新编写这个字符串(它涉及 100 多个对象的数组)将是最好的选择。
最佳答案
正如评论中所指出的,最好的方法是通过 JavaScript 将隐藏文件放入表单中。
var input = document.createElement("input");
input.setAttribute("type", "hidden");
input.setAttribute("name", "name_you_want");
input.setAttribute("value", "value_you_want");
//append to form element that you want .
document.getElementById("contactform").appendChild(input);
添加 contactFormId
<form name="contactform" method="post" id="contactForm" action="mailer.php">
请注意,这样做将通过 $POST var 而不是 GET 获取值,这更有意义,因为您是通过发布表单发送的。
关于javascript - 发送 javascript 字符串到 PHPmailer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38309394/