如何使用AJAX调用带参数的php页面

时间:2019-07-30 作者:Darshan

我使用位计算,以便通过php文件显示计算值,以便我尝试实现AJAX代码,但URL未加载php文件。。,有什么建议吗。。?

function fun5()
{
    var id1=document.getElementById(\'city\').value;
    $.ajax({
        url:\'loaddata.php?id1=\'+id1,
        complete:function(data)
        {
            document.getElementById(\'show1\').innerHTML=data.responseText;
        }
    });
}

1 个回复
SO网友:Krzysiek Dróżdż

您的代码应该工作正常,因为它没有问题,但是。。。

您在其中使用相对URL传递loaddata.php?id1= 作为URL。它是相对的,因此它将尝试查找loaddata。当前目录中的php文件。

因此,如果您在主页上,那么它将尝试从根目录加载该文件。但如果你在某个岗位(即。example.com/my-post/), 它将尝试从加载该文件/my-post/ 目录-并且没有这样的目录,所以不会有好的结局。

您应该使用绝对URL来避免此问题。

您不使用管理ajax,但。。。我们正在使用WordPress,所以。。。有更多的文字压缩方式来使用AJAX。

所有AJAX请求都应使用admin-ajax.php 文件,您应该使用wp_ajax_{action}wp_ajax_nopriv_{action} 钩子来处理此类请求。

因此,您的代码应该更像这样:

function fun5() {
    var mydata = {
        action: \'loadmydata\',
        id1: document.getElementById(\'city\').value
    };
    $.ajax({
        url: LoadDataObject.ajax_url,
        data: mydata,
        complete: function(data) {
            document.getElementById(\'show1\').innerHTML=data.responseText;
        }
    });
}
在PHP文件中,您应该:

定义LoadDataObject 对象使用wp_localize_script:。

wp_enqueue_script( \'loadmydata-script\', plugins_url( \'/js/my_query.js\', __FILE__ ), array(\'jquery\') );

// in JavaScript, object properties are accessed as ajax_object.ajax_url, ajax_object.we_value
wp_localize_script( \'loadmydata-script\', \'LoadDataObject\',
        array( \'ajax_url\' => admin_url( \'admin-ajax.php\' ) ) );
添加处理操作:。

function loadmydata_callback() {
    // ... put your loading code here
}
add_action( \'wp_ajax_loadmydata\', \'loadmydata_callback\' );
add_action( \'wp_ajax_nopriv_loadmydata\', \'loadmydata_callback\' );
您可以在此处阅读有关在WP中使用AJAX的更多信息:https://codex.wordpress.org/AJAX_in_Plugins

相关推荐

使用htaccess通过wp-Comments-post.php阻止垃圾邮件

我的WordPress网站上有很多垃圾评论。正在使用wp-comments-post.php 文件我可以从日志中看到:\"POST /wp/wp-comments-post.php HTTP/1.0\" 302 3744 \"https://example.com/wp/link/\" \"Mozilla/5.0 (Windows NT 6.1; WOW64) 我已经在我的.htaccess 文件:RewriteEngine On RewriteCond %{REQUEST_METHOD