冗长(对不起)问题描述:我有一个表格,每行都有用户信息,还有一些链接要发送,例如提醒电子邮件,以便进行问卷调查或邀请。
点击第一次的任何链接/按钮,打开一个(jquery)对话框,显示包含电子邮件内容,主题行和电子邮件地址以及几个按钮的表单:发送,取消等 - 这是为了确保内容正确,是正确的人等。
当我选择"发送提醒"表单执行它应该做的事情,将电子邮件发送给该行中的人。
点击另一个链接,它会自动发送电子邮件,而不是等待我按下任何按钮但,它会将电子邮件窗口中显示的(ajax)成功消息作为内容发送。
我一遍又一遍地阅读代码,我无法弄清楚为什么会这样,我需要你的帮助!
该表基于php,tablesorter,jquery和javascript,并且一行看起来像这样(有两个href和按钮做同样的事情,我试过两个 - 都做错了同样的事情)
<tr class="odd">
<td>jobst4</td>
<td>exmpl4@domain.com</td>
<td><a href="javascript://" onclick="SendEmail('remind','jobst4');return false;" title="Send email to 'jobst4' with type 'remind'">Send</a><input role="button" class="button button_remind ui-button ui-widget ui-state-default ui-corner-all" value="Send" onclick="SendEmail('remind','jobst4');return false;" type="button"></td>
</tr>
上面的行重复使用不同的值,传递给SendEmail的参数将设置电子邮件jquery拨号框中显示的内容。
php脚本中的对话框如下所示:
...
$RetVal .= "<div id=\"dialog\" title=\"Message Dialog Box\" style=\"display:none;z-index:3000;\"></div>";
...
echo $RetVal;
...
在jquery对话框中显示的表单:
...
$RetVal = "Edit the content of the email message and press submit.";
$RetVal .= "<hr>";
$RetVal .= "<form id=\"MailForm\" name=\"MailForm\" method=\"POST\" \">";
$RetVal .= "<table style='width:800px;'>";
$RetVal .= "<tr><td align=right>FROM:</td><td><input size=80 type=text name=\"from\" value=\"".$EmailFrom."\"></td></tr>";
$RetVal .= "<tr><td align=right>TO:</td><td><input size=80 type=text name=\"address\" value=\"".$userData['firstname']." ".$userData['lastname']." <".$userData['email'].">\"></td></tr>";
$RetVal .= "<tr><td align=right>CC:</td><td><input size=80 type=text name=\"cc\" value=\"\"></td></tr>";
$RetVal .= "<tr><td align=right>BCC:</td><td><input size=80 type=text name=\"bcc\" value=\"".$EmailBcc."\"></td></tr>";
$RetVal .= "<tr><td align=right>SUBJECT:</td><td><input size = 100 type=text name=\"subject\" value=\"".$subject."\"></td></tr>";
$RetVal .= "<tr><td colspan=2><textarea id='mailbody' name='mailbody'>".$content."</textarea></td></tr>";
$RetVal .= "<tr><td colspan=2>";
$RetVal .= "<input type=\"button\" value=\"Email\" onClick=\"SendEmail();jQuery('#dialog').dialog('close');return false;\"> <input type=\"button\" value=\"Close Me\" onClick=\"jQuery('#dialog').dialog('close');return false
;\">";
$RetVal .= "</td></tr>";
$RetVal .= "</table></form>";
...
echo $RetVal;
点击链接/按钮时执行的javascript:
$RetVal .= "<script language=\"javascript\">
function SendEmail()
{
console.log('function SendEmail');
$.ajax({
type: 'POST',
url: 'THE_SCRIPT_THAT_DOES_THE_MAILING.php',
data: $('#MailForm').serialize(),
success: function(data)
{
console.log('success1');
if(data.status=='success')
{
console.log('success2');
console.log(data.content);
$('#mailbody').html(data.content);
}
else
{
console.log('darn!');
$('#mailbody').html('<h1>ERROR</h1>'+data.content);
}
},
error: function(jqXHR,exception)
{
console.log('There was an error executing this(2): '+jqXHR.status+' '+jqXHR.responseText+' - '+exception);
}
});
}
</script>
";
即使按下(血腥)关闭也会再次发送电子邮件。
我做错了什么或看不到什么?
帮助!
答案 0 :(得分:0)
这可能对您有所帮助
从。
put href =“javascript:SendEmail('remind','jobst4');” in。