我有一个名为$author_email
的PHP变量,我想将该变量传递给我在按钮单击时通过HTML调用的Javascript函数onclick="searchEmail();"
,可以将变量传递给Javascript而是这样做吗? onclick="searchEmail('<?php echo $author_email?>');"
然后我想在我的javascript函数中使用它,以将其传递给通过AJAX调用的PHP函数。
这是Javascript函数searchEmail
:
function searchEmail() {
var admin_url = admin_ajax.ajaxurl;
$.ajax({
type: "POST",
url: admin_url,
datatype: "html",
data: {'action': 'search_notify_email'},
success: function() {
searchNotification();
},error:function() {
searchNotificationError();
}
});
}
JavaScript触发了PHP函数search_notify_email
我现在想将变量传递给PHP函数。怎么做?
看起来像这样:
function search_notify_email(){
$to = $author_email;
$subject = "Test title";
$message = "message message message message message message message ";
$headers[] = 'From: Test <noreply@domain.com>';
if( wp_mail($to, $subject, $message, $headers) ){
// Success
} else {
// Error
}
die();
}
add_action('wp_ajax_nopriv_search_notify_email', 'search_notify_email');
add_action('wp_ajax_search_notify_emaill', 'search_notify_email');
您可以看到我的目标是在最后一个PHP函数中使用$author_email
。我不能直接传递它的原因是因为此变量取决于单击哪个按钮。
答案 0 :(得分:3)
更改searchEmail
以使用参数:
function searchEmail(email) {
var admin_url = admin_ajax.ajaxurl;
$.ajax({
type: "POST",
url: admin_url,
datatype: "html",
data: {'action': 'search_notify_email', email: email},
success: function() {
searchNotification();
},error:function() {
searchNotificationError();
}
});
}
然后更改控制器以使用该参数。
function search_notify_email(){
$to = $_POST['email'];
$subject = "Test title";
$message = "message message message message message message message ";
$headers[] = 'From: Test <noreply@domain.com>';
if( wp_mail($to, $subject, $message, $headers) ){
// Success
} else {
// Error
}
die();
}
可能还有一种更WordPressy的方式来获取参数,但我不知道WordPress。