Php AJAX代码不是';我不能在Wordpress中工作
全部,, 我有以下jQuery代码:Php AJAX代码不是';我不能在Wordpress中工作,php,jquery,ajax,wordpress,Php,Jquery,Ajax,Wordpress,全部,, 我有以下jQuery代码: jQuery.ajax({ type: "POST", url: "http://localhost/oml/save_song.php", dataType: "json", data: "song_id=" + song_id + "&love_like_hate=love", async: false, success:function(respon
jQuery.ajax({
type: "POST",
url: "http://localhost/oml/save_song.php",
dataType: "json",
data: "song_id=" + song_id + "&love_like_hate=love",
async: false,
success:function(response){
alert(response.responseText1);
})
然后我在save_song.php文件中有以下代码:
$song_id = $_POST['song_id'];
$love_like_hate = $_POST['love_like_hate'];
echo json_encode(array('responseText1' => 'It is: '.$love_like_hate));
出于某种原因,如果我在wordpress之外运行这段代码,它工作得非常好,但是当我在wordpress内部执行这段代码时,它只发布歌曲id,而不是像你一样的爱和恨
编辑:当我指的是在Wordpress中时,我指的是我安装了Exec PHP插件,并直接在我创建的一个页面中编写PHP和jQuery。如果我只是在一个普通的php文件上运行它,而不是wordpress页面,它就可以正常工作。当你说“在”时,你的确切意思是什么
当打开干净的URL时,Wordpress可以控制参数的设置,因为mod_rewrite及其架构。这意味着,当您调用一个文件时,您可能没有正确地获取这些参数,并且可能没有像您认为的那样执行该文件
更多信息请我不知道为什么,但是Wordpress不喜欢AJAX调用,所以我在一篇文章中这样做了。以下是有效的代码:
jQuery.post("http://localhost/oml/save_song.php", { song_id: song_id, love_like_hate: "love" },
function(response) {
alert(response);
}, "json");
我知道这是很久以前的事了,您已经接受了自己的答案,但是由于修复程序使用JSON解决了这个问题,我想我可以在原始上下文中帮助其他人 原因是为了公开admin-ajax.php,您需要钩住wp_头。WP需要它在其php文件中执行ajax。这里有一个快速的方法来解决这个问题。将其放在functions.php文件中
/**
* Echo ajaxurl
*/
function head_script(){?>
<script type="text/javascript">
var ajaxurl = "<?php echo admin_url( 'admin-ajax.php' );?>";
</script>
<?php }
add_action( 'wp_head', 'head_script' );
/**
*回音ajaxurl
*/
函数头_脚本(){?>
var ajaxurl=“”;
ajax函数启动了吗?@davidngyen是的,我确实收到了响应,我的变量没有正确发布。如果PHP文件放在webroot中,wordpress根本不会起作用。因此,如果是有问题的文件,看起来更像是javascript中的某些东西被破坏了。@davidngyen我以前在测试其他东西如果我只是把$love\u like\u hate改成$song\u id,它确实会显示出来。请看我对原始帖子的编辑。