【发布时间】:2016-09-06 12:06:14
【问题描述】:
我正在旋转我的轮子,试图找出我下面的代码有什么问题。由“.func2”标识的函数可以正常触发并执行它应该执行的操作。然而,当“.func1”函数被触发时(window.alert 'I am here' 正在显示),“.func1”中的 AJAX 调用没有触发。 “func2_email.php ....”没有被调用。
这两个函数都是从同一个 PHP 页面调用的。
任何想法为什么会发生这种情况?
<script type="text/javascript">
$(function () {
$(“.func1").on("click", function () {
var fromEmail = $("#fromEmail").val();
var toEmail = $("#to_Email").val();
var transid = $("#refTransid").val();
var repid = $("#initiatedby").val();
var feed = $("#refFeed").val();
var message = $("#to_message").val();
var toName = $("#to_Name").val();
var shareid = $("#shareid").val();
// window.alert(“I am here”);
$.ajax({
type: 'GET',
url: “func2_email.php?fromEmail=" + fromEmail + "&toEmail=" + toEmail + "&toName=" + toName + "&message=" + message + "&shareId=" + shareid + "&transid=" + transid + "&repid=" + repid + "&feed=" + feed,
dataType: "html",
success: function (data) {
$("#msg").html("<p class='successmsg'>" + toName + " has been notified");
}
});
});
$(“.func2").on("click", function () {
var email = $(this).attr("email");
var userid = $(this).attr("userid");
var transid = $("#transid").val();
var repid = $("#repid").val();
var feed = $("#feed").val();
var name = $(this).text();
$.ajax({
type: 'GET',
url: “func1_email.php?userid=" + userid + "&feed=" + feed + "&transid=" + transid + "&repid=" + repid + "&email=" + email,
dataType: "html",
success: function (data) {
var scrollTop = $(document).scrollTop();
var top = parseInt(scrollTop+260);
$("#msg").html("<p class='successmsg'>" + name + " has been notified </p>");
}
});
});
});
</script>
func2_email.php 的代码
<?php
session_start();
require_once("classes/autoload.php");
$db = new Database();
//$fromEmail = $_GET["fromEmail"]; // If client wants to use their internal user names
$fromEmail = "admin@mydomain.com"; //Central email address
$toEmail = $_GET["toEmail"];
$toName = $_GET["toName"];
$message = $_GET["message"];
$shareId = $_GET["shareId"];
$transid = $_GET["transid"];
$repid = $_GET["repid"];
$feed = $_GET["feed"];
$host = $db->getDbHost();
$companyname = $db->getFieldValue("companyname", "apphost", $host, "appsettings");
$body = "Dear ".$toName."," ."</br>".$message."</br>Please click on the link below to view the page”."displaytransaction.php?transid=".$transid."&id=".$shareId."&requestor=".$repid."&feed=".$feed."<br></br>Sincerely, </br>Customer Operations</br>".$companyname;
$mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch
$mail->IsSMTP(); // telling the class to use SMTP
try {
$mail->Host = "smtp.mailgun.org"; // SMTP server
$mail->SMTPDebug = 2; // enables SMTP debug information (for testing)
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->Port = 2020; /
$mail->Username = “postmaster@mydomain.com"; // SMTP account username
$mail->Password = "d2e3d568bb45ea649661d86d6a553cf"; // SMTP account password
$mail->AddAddress($email);
$mail->SetFrom($fromEmail);
$mail->Subject = "Requesting you to join a live video sharing session on transaction #". $transid;
$mail->MsgHTML($body);
$mail->Send();
echo "Message Sent OK<p></p>\n";
} catch (phpmailerException $e) {
echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
echo $e->getMessage(); //来自其他任何东西的无聊错误消息! }
?>
【问题讨论】:
-
你能发布你的func2_email.php吗
-
检查浏览器中的网络选项卡,确保它确实没有被触发,也没有其他问题。
-
“是双引号吗? -
@sr3z 这是 func2_email.php 的代码
-
在替换引号后为我工作。唯一的问题 - 是否故意“.func1”点击调用 func2_email ,反之亦然?我的意思是我需要点击 func1 来调用 func2_email