PHP jquery加载数据远程文件不起作用

时间:2015-09-01 04:10:23

标签: php jquery ajax twitter-bootstrap

我需要将数据加载到bootstrap模式框中。

第1步:mypage.php(需要config.php和所有php class

require $abspath . '/config.php';

require ABSPATH . '/functions.php';

require ABSPATH . '/class/csrf.php';

require ABSPATH . '/class/mail/PHPMailerAutoload.php';

<div>.......ALL HTML</div>

$(function() {

    $('.push').click(function() {
        var id = $(this).attr('id');

        $.ajax({
            type: 'post',
            url: '../controller/remotefile.php', // in here you should put your query 
            data: 'cmid=' + id, // here you pass your id via ajax .
            // in php you should use $_POST['post_id'] to get this value 
            success: function(r) {
                // now you can show output in your modal 
                $('#cm').modal({
                        backdrop: 'static',
                        keyboard: false
                    }) // put your modal id 
                $('.something').show().html(r);
            }
        });


    });

});

第2步:remotefile.php(需要config.php和所有php class 再次

require $abspath . '/config.php';

require ABSPATH . '/functions.php';

require ABSPATH . '/class/csrf.php';

require ABSPATH . '/class/mail/PHPMailerAutoload.php';

if(isset($_POST['cmid'])){
$DB =  mysqli::f("SELECT * FROM " . BOOKS . " WHERE id = ?",filter_var($_POST['cmid'], FILTER_VALIDATE_INT));
print_r($DB);
}

对于这种情况,我需要config.php和所有php class到每个页面(远程页面和根页面)。

这个为我工作但是当我从远程文件中删除config.php和所有php class时,我看到db config的php错误和更多的php错误。

我认为这不是插入config.php和所有php class两个页面的好方法。我可以从config.php删除php class和所有remotefile.php,我的脚本是否正常?无论如何?任何想法?

1 个答案:

答案 0 :(得分:0)

简短的回答是&#34;不,你不能从config.php文件&#34;中删除remogefile.php和php类文件。

config.php文件中有什么内容?我的猜测是你在那里设置你的数据库,就像告诉PHP你的数据库主机,用户名,密码等。因此,如果您不包含该文件,则它们都未设置,并且您收到数据库错误(请注意,mysqli::f应该执行查询?)。

您的问题也让我认为您希望config.php文件已经包含在mypage.php文件中,并且无需再次要求它。

如果有,请考虑用户访问mypage.php时发生的请求数。

  1. 最初,创建了mypage.php的第一个请求,文件执行并包含您需要的所有文件,包括config.php。完成执行后,请求完成,页面将在浏览器中呈现。

  2. 该呈现页面中的JS代码初始化了一个新的新请求,其中调用了remotefile.php。就执行的PHP代码而言,这个新请求与前一个请求无关。因此,还不需要config.php,因此未配置数据库。

  3. 因此,您需要在您发出请求的每个页面中要求这些文件(config.php和所有类文件)。好吧,我没有看到您使用remotefile.php文件中包含的任何类,所以非常

    我可以想到以下几件事来使php文件干净简洁: