在邮件中发送Javascript数组
我有一个HTML表单可以从复选框中检索一些选项:在邮件中发送Javascript数组,javascript,php,Javascript,Php,我有一个HTML表单可以从复选框中检索一些选项: <form action="" method="post" id="menuform" name="menuform"> <fieldset> <legend>Select a Menu</legend> <label> <input type="radio" name="se
<form action="" method="post" id="menuform" name="menuform">
<fieldset>
<legend>Select a Menu</legend>
<label>
<input type="radio" name="selectedmenu" checked value="menu01" ape-qty='8' ent-qty='1' pes-qty='1' sor-qty='1' car-qty='1' pos-qty='1' data-price='95' />
<span>First Item</span>
</label>
...(more)...
</fieldset>
<fieldset>
<legend id='aperitivosPrompt'>Elegir Aperitivos</legend>
<label>
<input type='checkbox' name='aperitivos' value="1" />
<span>Item 1</span>
</label>
<label>
<input type='checkbox' name='aperitivos' value="2" />
<span>Item 2</span>
</label>
<label>
<input type='checkbox' name='aperitivos' value="3" />
<span>Item 3</span>
</label>
...(more)...
</fieldset>
<fieldset>
<input type="submit" value="Enviar" />
</fieldset>
</form>
现在,我在浏览器控制台中获得了HTML表单的
字段中的所有“值”。但不仅仅是检查值,而且无论如何,我现在需要的是获取这个JSON.stringify并用PHP通过邮件发送。编写一个PHP脚本来发送电子邮件,将表单操作更改为在此脚本上发布
注意:这是未经测试的
将您的表格更改为:
<form action="mail.php"...>
</form>
创建类似mail.php的
<?php
ob_start();
var_dump($_POST);
$result = ob_get_clean();
mail ( 'your@email.com' , 'subject' , $result);
?>
否则,您可以使用JSON.stringify和API使用JS发送电子邮件。我找到了一个很好的解决方案。我得到所有“检查”值,并创建一封主题为的电子邮件 因此,HTML表单:
<html>
<head>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.js'></script>
<script type='text/javascript' src='http://sisyphus-js.herokuapp.com/assets/application-09059f9f54cc3c3bff98487cf866644b.js'></script>
</head>
<body>
<form action="configurador.php" method="post" id="menuform" name="menuform">
<fieldset>
<legend id='itemPrompt'>Choose Item</legend>
<label>
<input type='checkbox' name='item' value="Value#01" />
<span>Value#01</span>
</label>
(...more...)
<input type="submit" name="submit" value="Send" />
</fieldset>
</form>
</body>
这没关系。但是我在那封邮件中收到了所有的复选框,甚至没有选中。如果我不必打开客户端邮件,只需从服务器自动发送邮件就可以了
有没有针对这种变化的解决方案?处理表单的php在哪里?研究如何使用PHPCheckout phpmailer通过电子邮件发送表单数据。其中一个最简单的php电子邮件插件,我想如果你想从用户收到的邮件中直接发送javascript,你会遇到很多麻烦。在这种情况下,我会制作一个特殊的页面,并通过电子邮件发送指向该页面的链接(可能带有某种令牌)。@jeroen目前还没有php文件,因为我正试图找到如何开发该部分的方法,而不是简单的解决方案。当我点击发送按钮时,什么也没发生。看起来var_导出并没有像我想象的那样返回字符串。上面编辑的示例确实有效。如果要获取多个复选框的状态,应使用
name='aperitivos[]'
。
<?php
ob_start();
var_dump($_POST);
$result = ob_get_clean();
mail ( 'your@email.com' , 'subject' , $result);
?>
<html>
<head>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.js'></script>
<script type='text/javascript' src='http://sisyphus-js.herokuapp.com/assets/application-09059f9f54cc3c3bff98487cf866644b.js'></script>
</head>
<body>
<form action="configurador.php" method="post" id="menuform" name="menuform">
<fieldset>
<legend id='itemPrompt'>Choose Item</legend>
<label>
<input type='checkbox' name='item' value="Value#01" />
<span>Value#01</span>
</label>
(...more...)
<input type="submit" name="submit" value="Send" />
</fieldset>
</form>
</body>
function sendMail() {
var mailbody = "My Configurator: \n\n"
+ $('input[name="item"]')
.map(function(id, box){ return (box.checked ? "[x]" : "[_]") + " " + box.value;})
.get()
.join("\n");
var link = "mailto:mail@mail.com"
+ "?cc="
+ "&subject=" + escape("Configurator - Subject")
+ "&body=" + escape(mailbody);
window.location.href = link;
}
$(function(){
$( "#menuform" ).sisyphus();
});