Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.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 无法在wordpress中使用ajax_Php_Jquery_Ajax_Wordpress - Fatal编程技术网

Php 无法在wordpress中使用ajax

Php 无法在wordpress中使用ajax,php,jquery,ajax,wordpress,Php,Jquery,Ajax,Wordpress,我从wordpress开始,到现在为止没有太多问题 当用户更改SELECT aming的值以更新表单输入时,我希望使用ajax查看我的数据库。使用php和jquery轻松使用ajax和php,但我似乎无法在wordpress中掌握其背后的概念 所有将要发布的php都直接位于插件中我的表单所在的文件中。出于测试的目的,我目前只想在navigator控制台中从js中获取一些东西 php wordpress: js: Wordpress将.htaccess更改为将所有请求拉入自身。如果您运行的是aja

我从wordpress开始,到现在为止没有太多问题

当用户更改SELECT aming的值以更新表单输入时,我希望使用ajax查看我的数据库。使用php和jquery轻松使用ajax和php,但我似乎无法在wordpress中掌握其背后的概念

所有将要发布的php都直接位于插件中我的表单所在的文件中。出于测试的目的,我目前只想在navigator控制台中从js中获取一些东西

php wordpress:

js:


Wordpress将.htaccess更改为将所有请求拉入自身。如果您运行的是ajax,则需要插入重定向插件,或者从wordpress域之外攻击php程序。

wordpress更改.htaccess以将所有请求拉入自身。如果你运行的是ajax,你要么需要加入重定向插件,要么从wordpress域之外攻击php程序。

你的JS文件加载了吗?在我看来,在你的wp_本地化_脚本中,ajax_url是不完整的。您是否正确指定了要从admin-ajax.php调用的操作

fetchGuide.ajax\u url的值应该类似于admin ajax.php?action=fetch\u guide\u return。对吗


控制台里有什么东西吗?很抱歉,我还不能发表评论,没有足够的观点:你的JS文件加载了吗?在我看来,在你的wp_本地化_脚本中,ajax_url是不完整的。您是否正确指定了要从admin-ajax.php调用的操作

fetchGuide.ajax\u url的值应该类似于admin ajax.php?action=fetch\u guide\u return。对吗


控制台里有什么东西吗?很抱歉,我还不能发表评论,没有足够的观点:这里的问题是您没有将ajax\u url正确地指向您的js

更新这些行

 wp_localize_script('guide', 'fetchGuide', admin_url( 'admin-ajax.php' ) );


这些将正确地指向ajax\u url,并且您的函数应该运行良好

这里的问题是您没有正确地将ajax\u url指向您的js

更新这些行

 wp_localize_script('guide', 'fetchGuide', admin_url( 'admin-ajax.php' ) );


这些将正确指向ajax\u url,您的函数应该运行良好

谢谢大家的回答。我很难理解它在wordpress中是如何工作的

如果我找到了答案,但不得不改变我做事情的方式

这是我在JS的结尾部分:

add_action( 'admin_footer', 'my_fetch_guide' );
function my_fetch_guide() { ?>
    <script type="text/javascript" >
        var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
        jQuery("#chooseGuide").on("change", function(){
            jQuery.ajax({
                  type:"POST",
                  url: ajaxurl,
                  data: {
                      action: "fetch_guide_return",
                      id: jQuery(this).val()
                  },
                  dataType: "json"
            }).success(function(data){
                jQuery("#wpgc_guide_form").prepend("<input type='hidden' name='idnumber' id='idnumber' value='"+data["id_guide"]+"'/>");
                jQuery("#name").val(data["name"]);
                jQuery("#firstName").val(data["first_name"]);
                jQuery("#mail").val(data["mail"]);
                jQuery("#phone").val(data["phone_number"]);
            }).error(function(errorThrown){
                alert(errorThrown);
            } );
        })
    </script>
<?php }

谢谢大家的回答。我很难理解它在wordpress中是如何工作的

如果我找到了答案,但不得不改变我做事情的方式

这是我在JS的结尾部分:

add_action( 'admin_footer', 'my_fetch_guide' );
function my_fetch_guide() { ?>
    <script type="text/javascript" >
        var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
        jQuery("#chooseGuide").on("change", function(){
            jQuery.ajax({
                  type:"POST",
                  url: ajaxurl,
                  data: {
                      action: "fetch_guide_return",
                      id: jQuery(this).val()
                  },
                  dataType: "json"
            }).success(function(data){
                jQuery("#wpgc_guide_form").prepend("<input type='hidden' name='idnumber' id='idnumber' value='"+data["id_guide"]+"'/>");
                jQuery("#name").val(data["name"]);
                jQuery("#firstName").val(data["first_name"]);
                jQuery("#mail").val(data["mail"]);
                jQuery("#phone").val(data["phone_number"]);
            }).error(function(errorThrown){
                alert(errorThrown);
            } );
        })
    </script>
<?php }

更改事件的函数是否正在运行?是否正在进行AJAX调用,但没有日志?试着输入一个失败函数,看看它是否被记录下来。更改事件的函数正在运行吗?是否正在进行AJAX调用,但没有日志?试着输入一个失败函数,看看它是否被记录下来。
add_action( 'admin_footer', 'my_fetch_guide' );
function my_fetch_guide() { ?>
    <script type="text/javascript" >
        var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
        jQuery("#chooseGuide").on("change", function(){
            jQuery.ajax({
                  type:"POST",
                  url: ajaxurl,
                  data: {
                      action: "fetch_guide_return",
                      id: jQuery(this).val()
                  },
                  dataType: "json"
            }).success(function(data){
                jQuery("#wpgc_guide_form").prepend("<input type='hidden' name='idnumber' id='idnumber' value='"+data["id_guide"]+"'/>");
                jQuery("#name").val(data["name"]);
                jQuery("#firstName").val(data["first_name"]);
                jQuery("#mail").val(data["mail"]);
                jQuery("#phone").val(data["phone_number"]);
            }).error(function(errorThrown){
                alert(errorThrown);
            } );
        })
    </script>
<?php }
add_action("wp_ajax_nopriv_fetch_tour_return","fetch_tour_return");
add_action("wp_ajax_fetch_tour_return","fetch_tour_return");

function fetch_tour_return(){
    global $wpdb;
    if(isset($_POST["id"])){
        $id = $_POST["id"];
        $table = $wpdb->prefix."tour";

        $tour = $wpdb->get_row("SELECT * FROM ".$table." WHERE id_tour LIKE ".$id.";");

        print json_encode($tour);

        die();
    }
}