向动态创建的div内容添加PHP

向动态创建的div内容添加PHP,php,jquery,ajax,Php,Jquery,Ajax,我正在制作一个带有子菜单的网站,该子菜单将内容呈现给div。该网站由Wordpress提供支持,该网站的这部分是我制作的插件。我想让div的内容从数据库中获取信息,也就是说,我想添加PHP代码。但似乎无法添加任何PHP。如果我将加载的内容设置为PHP文件,则由于JS中的jQuery('#pageContent').html(msg),因此无法工作,如果我将PHP代码添加到html文件,则该代码似乎无法识别。这样做的方法是什么?我也许应该补充一点,我想添加的PHP是表单的一部分,就我所见,需要与H

我正在制作一个带有子菜单的网站,该子菜单将内容呈现给div。该网站由Wordpress提供支持,该网站的这部分是我制作的插件。我想让div的内容从数据库中获取信息,也就是说,我想添加PHP代码。但似乎无法添加任何PHP。如果我将加载的内容设置为PHP文件,则由于JS中的
jQuery('#pageContent').html(msg)
,因此无法工作,如果我将PHP代码添加到html文件,则该代码似乎无法识别。这样做的方法是什么?我也许应该补充一点,我想添加的PHP是表单的一部分,就我所见,需要与HTML位于同一个文件中

以下是使用Ajax加载内容的JS函数:

function loadPage(url)  //the function that loads pages via AJAX
{   
    url=url.replace('#page','');    //strip the #page part of the hash and leave only the page number

    jQuery('#loading').css('visibility','visible');  //show the rotating gif animation   

    jQuery.ajax({    //create an ajax request to load_page.php
        type: "POST",
        url: ajax_object.ajax_url,
        data: {
            action: 'ajax_request2',
            page: url //with the page number as a parameter
        },
        dataType: "html",   //expect html to be returned
        error: function(xhr, textStatus, textError) { 
            console.log(textError);
        },
        success: function(msg) {
            window.alert("Working loadPage ajax!");
            if(parseInt(msg)!=0)    //if no errors
            {
                jQuery('#pageContent').html(msg);    //load the returned html into pageContent
                jQuery('#loading').css('visibility','hidden');   //and hide the rotating gif
            }
        }
    });
}

我稍微修改了您的函数,并将其定向到JSON数据的测试站点。这个小片段很管用。也许对你有帮助

由于测试站点只返回JSON,所以我放在
#pageContent
中的“html”不是真正的html,但我希望您能理解这一点

如果您想知道Ajax返回了什么,那么您可以始终在正确的位置插入
console.log(msg)
(请参阅下面注释掉的行)

而且,需要明确的是,如果加载的内容是由PHP脚本生成的,那么loadPage函数中的url当然应该指向相关服务器上的PHP脚本。此脚本将查找数据并将其处理为所需的html格式,然后将其作为对Ajax请求的响应发送回

函数加载页(url){
url=url.replace('#page','');//去掉散列中的#page部分,只留下页码
jQuery('#IAmloading').show();//显示旋转gif动画
ajax({//创建一个ajax请求来加载\u page.php
键入:“获取”,
url:url,//要加载的页面的url。。。
数据:{action:'ajax_request2',id:4},//您的进一步参数。。。
数据类型:“json”,//希望返回json
错误:函数(xhr,textStatus,textError){console.log(textError);},
成功:函数(msg){console.log(“Working loadPage ajax!”);
//console.log(msg);//显示AJAX请求返回的内容
if(msg)//如果没有错误
{
jQuery('#pageContent').html(JSON.stringify(msg));//将msg放入pageContent
jQuery('#IAmloading').hide();//并隐藏旋转gif
}
}
});
}
//使用测试站点的URL调用函数(仅返回JSON…):
加载页('https://jsonplaceholder.typicode.com/users');
#IAmloading{可见性:隐藏}

请稍候,页面正在加载。。。

我稍微修改了您的函数,并将其定向到JSON数据的测试站点。这个小片段很管用。也许对你有帮助

由于测试站点只返回JSON,所以我放在
#pageContent
中的“html”不是真正的html,但我希望您能理解这一点

如果您想知道Ajax返回了什么,那么您可以始终在正确的位置插入
console.log(msg)
(请参阅下面注释掉的行)

而且,需要明确的是,如果加载的内容是由PHP脚本生成的,那么loadPage函数中的url当然应该指向相关服务器上的PHP脚本。此脚本将查找数据并将其处理为所需的html格式,然后将其作为对Ajax请求的响应发送回

函数加载页(url){
url=url.replace('#page','');//去掉散列中的#page部分,只留下页码
jQuery('#IAmloading').show();//显示旋转gif动画
ajax({//创建一个ajax请求来加载\u page.php
键入:“获取”,
url:url,//要加载的页面的url。。。
数据:{action:'ajax_request2',id:4},//您的进一步参数。。。
数据类型:“json”,//希望返回json
错误:函数(xhr,textStatus,textError){console.log(textError);},
成功:函数(msg){console.log(“Working loadPage ajax!”);
//console.log(msg);//显示AJAX请求返回的内容
if(msg)//如果没有错误
{
jQuery('#pageContent').html(JSON.stringify(msg));//将msg放入pageContent
jQuery('#IAmloading').hide();//并隐藏旋转gif
}
}
});
}
//使用测试站点的URL调用函数(仅返回JSON…):
加载页('https://jsonplaceholder.typicode.com/users');
#IAmloading{可见性:隐藏}

请稍候,页面正在加载。。。

@HarunYilmaz我认为OP已经知道了这一部分,我认为OP的问题是没有响应检查浏览器中的网络选项卡以查看和检查响应,如果调用错误的url API,可能是错误500或404,顺便问一下,您希望得到什么响应?标记html或数字或某种类型?@Ingrid:您能详细说明一下吗:“如果我将加载的内容设置为PHP文件,则由于
jQuery(“#pageContent').html(msg)
”而无法工作。”。它怎么不起作用?PHP文件返回了什么?你可以使用开发者工具的网络监控功能,或者检查AJAX请求返回的实际数据。我认为@HarunYilmaz写(删除的)评论可能是对的,如果不能以我尝试的方式用JS呈现PHP代码的话?但我不知道如何让div的内容按照我希望的方式运行。(从数据库收集内容,以html select下拉列表形式显示)@HarunYilmaz我想OP已经知道了这一部分,我认为OP的问题是没有响应检查浏览器中的网络选项卡以查看和检查响应,如果调用,可能是错误500或404