javascript - 发送 javascript 字符串到 PHPmailer

标签 javascript php jquery html phpmailer

我需要在调用时将 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/

相关文章:

javascript - 在javascript中对对象的对象数组进行排序

javascript - if 在map函数中reactjs元素的内部循环

javascript - 如何在没有连字符的情况下让 jQuery UI 自动完成工作

javascript - 来自多个来源的 jQuery 动画 - 影响多个对象

jquery - 日期选择器的麻烦

php - 如何使用javascript将相同的变量从php发送到两个不同的php页面

javascript - 如何使用 javascript 将自定义类名添加到 Highcharts 中的刻度定位器

javascript - 双向绑定(bind) [(ngmodel)] 不受 jquery 更改事件的影响

php - WooCommerce 复合产品 : How to use URL parameters to change the default product option for a component?

php - 使用 htaccess 获得良好的 SEO 链接