【问题标题】:Sending a javascript String to PHPmailer将 javascript 字符串发送到 PHPmailer
【发布时间】:2016-11-13 13:05:17
【问题描述】:

当它被调用时,我需要将一个 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:我刚刚意识到我要问的是:如何在提交按钮的 ACTION 访问 php 页面之前更改它?

我只能在此字符串发送之前完成编辑。或者我可以在每次输入失去焦点时重新编写它,但我不认为每次更改都重新编写这个涉及 100 多个对象的数组的字符串是最好的选择。

【问题讨论】:

  • 为什么不使用隐藏字段?发布前更新隐藏字段的值,发布后在PHP中检索。
  • 为什么不将值发送到中间处理/确认页面,然后将处理/确认的值发送到mailer.php
  • @devlincarnate 谢谢!这正是我在你和 Dminones 的帮助下使用的。

标签: javascript php jquery html phpmailer


【解决方案1】:

正如 cmets 中指出的那样,最好的方法是通过 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 获取值,这更有意义,因为您是通过邮寄表单发送的。

【讨论】:

  • 谢谢!这工作得很好。我从 Submit 中调用了一个 onclick 函数,该函数填充了隐藏的类型输入。很高兴我仍然可以直接从 php 从表单中获取任何其他输入,这是我以前通过简单地调用函数无法做到的。
猜你喜欢
  • 1970-01-01
  • 2020-10-18
  • 1970-01-01
  • 1970-01-01
  • 2014-10-11
  • 2016-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多