当页面作为WordPress模板页面访问时,jQuery ajax()不起作用

时间:2013-03-15 作者:drake035

在一个文件(test\\u ajax.php)中,我有一个通过jQuery ajax()加载另一个页面(registration\\u form\\u race\\u type.php)的短消息。当通过其绝对URL访问“test\\u ajax.php”时,它运行良好,该URL为:

http://46.20.119.207/~asuntosf/wordpress_test/wp-content/themes/test_ajax/test_ajax.php
但令人惊讶的是,如果通过其WordPress地址访问完全相同的页面“test\\u Ajax.php”,Ajax功能将停止工作,即:

http://46.20.119.207/~asuntosf/wordpress_test/?page_id=13
我坚持这两个URL指向相同的两个PHP文件。

下面是“test\\u ajax.php”的代码:

<?php
/*
Template Name: Page Test Ajax 01
*/
?>
<html>
<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>
    <script type="text/javascript">
        jQuery(function () {    
            jQuery(\'#event_id_from_list\').change(function() {       
                var event = jQuery("#event_id_from_list").val(); 
                var data = "event_id=" + event;         
                jQuery.ajax({
                    url: \'registration_form_race_type.php\', 
                    type: \'GET\',
                    data: data,
                    success: function(data){ 
                        jQuery(\'#div_race_type\').html(data); 
                    }
                });         
            });
        });
    </script>
</head>
<body>
    <select class=\'required\' type="text" name="event_id_from_list" id="event_id_from_list" />
        <option value=\'Paris\'>Paris</option>
        <option value=\'London\'>London</option>
        <option value=\'Rome\'>Rome</option>
    </select>   
    <div id=\'div_race_type\' class=\'section\'>            
        <?php require_once(\'registration_form_race_type.php\'); ?>           
    </div>
</body>
<html>
以及通过Ajax调用的页面代码“registration\\u form\\u race\\u type.php”:

<?php if (isset($_GET[\'event_id\'])) echo \'you selected \'.$_GET[\'event_id\']; ?>

1 个回复
最合适的回答,由SO网友:whiteletters in blankpapers 整理而成

我建议使用wp内置的ajax。它可以避免许多问题并带来许多好处。

我编写了一个示例来说明这两种方法:

Dynamically changing navigation links (next and previous) via AJAX

我是来解释的

祝你好运

结束

相关推荐

在插件开发中使用AJAX的最佳实践是什么?

我正在创建插件,AJAX调用一切正常,但有一个问题我似乎找不到答案,那就是最佳实践。我通过/wp-admin/admin-ajax.php 主题中有我的php函数functions.php 剧本然而,我只是认为这似乎不是一个好主意,因为当用户激活插件时,你会做什么,你是否需要创建一个函数来将代码写入函数。激活php?类似地,如果用户更改了主题怎么办?因此,我只是想知道是否还有其他方法可以做到这一点,或者这类事情的常见方法是什么。