Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
要在单击按钮时加载的php文件_Php_Jquery_Ajax_Wordpress - Fatal编程技术网

要在单击按钮时加载的php文件

要在单击按钮时加载的php文件,php,jquery,ajax,wordpress,Php,Jquery,Ajax,Wordpress,我正在加载personalizetest.php(它有发送电子邮件的swiftmailer代码)点击事件。当我点击html文件中的按钮并使用下面给出的jquery代码加载它时,它会工作,并发送电子邮件。但当我在WordPress的php文件中添加相同的代码,并单击按钮时,控制台上会显示“操作成功执行”,但我没有收到任何电子邮件 我搜索了一下,发现我必须在function.php中添加以下代码,以便在Wordpress上执行该文件,我确实这样做了,但现在它在每次刷新页面时都会发送电子邮件。我要么打

我正在加载
personalizetest.php
(它有发送电子邮件的swiftmailer代码)点击事件。当我点击html文件中的按钮并使用下面给出的jquery代码加载它时,它会工作,并发送电子邮件。但当我在WordPress的php文件中添加相同的代码,并单击按钮时,控制台上会显示“操作成功执行”,但我没有收到任何电子邮件

我搜索了一下,发现我必须在function.php中添加以下代码,以便在Wordpress上执行该文件,我确实这样做了,但现在它在每次刷新页面时都会发送电子邮件。我要么打开网站,要么从一个页面转到另一个页面,而不是点击按钮。简而言之,当我用
class=button
单击按钮时,我正在加载这个
personalizetest.php
文件:

function.php

<?php

function enqueue_scripts_styles_init() {


wp_enqueue_script( 'ajax-script', get_template_directory_uri().'./personalizetest.php', array('jquery'), 1.0 ); // jQuery will be included automatically
wp_localize_script( 'ajax-script', 'ajax_object', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) ); // setting ajaxurl
 }

  add_action('init', 'enqueue_scripts_styles_init');
?>

jQuery代码

$(document).ready(function(){
$('.button').click(function(){
    var clickBtnValue = $(this).val();
    var ajaxurl = 'personalizetest.php',
    data =  {'action': clickBtnValue};
    $.post(ajaxurl, data, function (response) {
        // Response div goes here.
        console.log("action performed successfully");
    });
});

<input type="submit" class="button" name="insert" value="insert" />
$(文档).ready(函数(){
$('.button')。单击(函数(){
var clickBtnValue=$(this.val();
var ajaxurl='personalizetest.php',
数据={'action':单击BtnValue};
$.post(ajaxurl、数据、函数(响应){
//这里是反应组。
console.log(“操作成功执行”);
});
});
personalizetest.php(Swiftmailer代码)


首先,在
wp\u enqueue\u脚本中包含
.php
。这不行。如果ajax回调函数位于
personalizetest.php
文件中,则需要使用

<?php

require_once( get_template_directory(). '/{your folder name here}/personalizetest.php' );

add_action('init', 'enqueue_scripts_styles_init');

function enqueue_scripts_styles_init() {
    wp_enqueue_script( 'ajax-script', get_template_directory_uri().'/js/custom.js', array('jquery'), 1.0 ); // jQuery will be included automatically
    wp_localize_script( 'ajax-script', 'ajax_object', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) ); // setting ajaxurl
 }

?>
操作应指向位于
personalizetest.php
文件中的ajax回调函数,使用钩子:

add_action( 'wp_ajax_my_action', 'my_action_callback' );
add_action( 'wp_ajax_nopriv_my_action', 'my_action_callback' );
(更改操作ofc的名称)

你可以阅读我写的关于ajax加载的博文,这是针对帖子的,但同样的原则也适用于这里:


首先,在
wp\u enqueue\u脚本中包含
.php
。这不行。如果ajax回调函数位于
personalizetest.php
文件中,则需要使用

<?php

require_once( get_template_directory(). '/{your folder name here}/personalizetest.php' );

add_action('init', 'enqueue_scripts_styles_init');

function enqueue_scripts_styles_init() {
    wp_enqueue_script( 'ajax-script', get_template_directory_uri().'/js/custom.js', array('jquery'), 1.0 ); // jQuery will be included automatically
    wp_localize_script( 'ajax-script', 'ajax_object', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) ); // setting ajaxurl
 }

?>
操作应指向位于
personalizetest.php
文件中的ajax回调函数,使用钩子:

add_action( 'wp_ajax_my_action', 'my_action_callback' );
add_action( 'wp_ajax_nopriv_my_action', 'my_action_callback' );
(更改操作ofc的名称)

你可以阅读我写的关于ajax加载的博文,这是针对帖子的,但同样的原则也适用于这里:


谢谢Steppup的更正。我是新手,英语不好。我会尽量按照你的格式来写。谢谢Steppup的更正。我是新手,英语不好。我会尽量按照你的格式来写。谢谢Loic和dingo_d。你们两个都是新程序员的帮手……我不知道我是否做了更正是的,但我需要你的帮助。我已经将我的代码粘贴到personalizetest.php中供你阅读。感谢Loic和dingo_d。你们都是新程序员的帮手……我不知道我是否做得对,但我需要你的帮助。我已经将我的代码粘贴到personalizetest.php中供你阅读。