Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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 AJAX代码不是';我不能在Wordpress中工作_Php_Jquery_Ajax_Wordpress - Fatal编程技术网

Php AJAX代码不是';我不能在Wordpress中工作

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代码:

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,它确实会显示出来。请看我对原始帖子的编辑。