AJAX请求发送URL而不是数据

时间:2012-02-11 作者:Richard

我的插件运行时出现了一个非常奇怪的错误。我目前正在开发一个插件,允许用户创建路线和路线的具体日期。日期或多或少是游客可以购买的门票。

我正在运行ajax请求来创建和删除日期数据。

这些ajax请求的返回是HTML片段,用于更新显示路由可用日期的表。

当我创建一个路由时,我会得到正确的HTML,并通过jQquery将其放入表中。

然而,当我运行几乎相同的请求从表中删除一行时,我不会得到相同的结果。我没有取回HTML,而是取回了我网站的URL。我到处都找遍了,找不到为什么会发生这种情况。抄本上说,就一个错误而言,我得到了-1或0。ajax请求工作正常,行会按照我的请求被删除。

我希望有人能找到阻止我的代码正确执行的小恶魔。

以下是以下文件:PHP:witchroute/index.phpwitchroute/wit_witchroute.class.phpwitchroute/wit_date.class.php

HTML:witchroute/views/date-display.htmlwitchroute/views/date-display-table.htmlwitchroute/views/date-insert-form.html

您应该知道:ajax删除请求位于wit\\u witchroute中。班构造函数中的php

add_action(\'wp_ajax_remove_date_from_route\', function()
                {
                    $wit_date = wit_date::getInstance();
                    $wit_date->removeDate($_POST);
                });
实际方法为wit\\U日期。班php

jQuery请求在日期显示中启动。包含以下测试代码的html:

jQuery(function() {
        jQuery(".witchroute_delete_btn").click(function(){

            var id      =   jQuery(this).attr(\'date-id\');

            var deleteData  = { id: id,  
                                action: "remove_date_from_route",
                                security: \'<?php print wp_create_nonce("adsfadsfasdfadsfd"); ?>\'
                            };

            var r2 = jQuery.ajax({
                url: ajaxurl,
                type: "POST",
                data: deleteData,
                dataType: "html"
            });

            r2.done(function(msg) {
                //jQuery("#witchroute_date_display_body").html(msg);
                alert(msg);
            }); 
        });

    });
请不要,我对插件开发还比较陌生。我还没有做任何表单验证,因为我还在测试,所以请不要对此发表评论。然而,如果你有一些结构化的技巧,我会非常感谢你的帮助,这甚至可能有助于解决我的问题?

我期待着你的帮助,希望有人能看到我看不到的东西:)

祝你一切顺利,Richard

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

一些注意事项,您不应该使用匿名/lambda fn,钩子闭包-那些无法注销的本地化脚本时,创建nonce-请参阅以获取示例。this answer.
  • ajaxurl 默认情况下未设置。在本地化脚本时,必须定义它(并让它指向admin ajax.php)。然后通过本地化对象(内部的2nd参数)访问它wp_localize_script()) 像这样:your_obj_name.ajaxurl.
  • 您还应该看看the Codex article about Ajax in Plugins.

    结束

    相关推荐

    如何在管理员WP_LIST_TABLE中实现管理员AJAX?

    我是WordPress的新手,如果有人能帮助我,我将非常感激。在文档中有参数ajax“true”。没有说过如何使用WP\\u List\\u Table类实现Ajax吗?parent::__construct( array( \'singular\' => \'user\', //singular name of the listed records \'plural\' => \'users\', //pl