Php 无法在wordpress中使用ajax
我从wordpress开始,到现在为止没有太多问题 当用户更改SELECT aming的值以更新表单输入时,我希望使用ajax查看我的数据库。使用php和jquery轻松使用ajax和php,但我似乎无法在wordpress中掌握其背后的概念 所有将要发布的php都直接位于插件中我的表单所在的文件中。出于测试的目的,我目前只想在navigator控制台中从js中获取一些东西 php wordpress: js: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将.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();
}
}