如果我从另一个加载了ajax的php文件调用一个php文件,我会得到错误


if I call a php file from another php file loaded with ajax I get error

如标题所示,我将对php文件进行ajax调用,如下所示:

function loadForm(val1, val2, val3){
    $.ajax({
        url : 'AL_loadForm.php',
        type : 'POST',
        data : {
            value1 :val1,
            value2: val2,
            value3:val3
        },
        dataType:'json',
        success : function(data) {              
            alert(data);
        },
        error : function(request,error)
        {
            alert("error");
        }
    });
}

在我的loadform。php中,我有两种情况,如果我加载这段代码,我得到一个成功的ajax调用,没有错误

<?php 
if($_POST){

    $var1 = $_POST['value1'];
    $var2 = $_POST['value2'];
    $var3 = $_POST['value3'];
    echo json_encode($var1);
}
?>

但是如果我用include php文件加载相同的代码我在ajax调用中会得到一个错误

 <?php 
    if($_POST){
        include 'AL_createTbObj.php';
        $var1 = $_POST['value1'];
        $var2 = $_POST['value2'];
        $var3 = $_POST['value3'];
        echo json_encode($var1);
    }

这正常吗?不能做的东西在另一个PHP文件与一个单一的ajax调用?

编辑:添加AL_createTBObj.php的内容,它从tablelow。php

类创建一个对象
<?php
     require 'tableRows.php';
        //Create mySqli object with DB Params
        $conn = new mysqli($dbHost, $dbUser, $dbPass, $dbDB);
        //Create TableRows object
        $tb = new TableRows($conn);
        //Connect to Data Base
        $tb->checkDb();
?>

有一些echo 'content' ..但这些方法还没有调用....

您的AL_createTBObj.php文件在顶部缺少<?php。这意味着内容将作为文本返回,而不是作为php处理。

检查这个和任何其他包含的文件在任何代码之前都有<?php -如果它都是php,则在文件的最顶部。您不需要终止带有?>的文件,您可以选择不使用它,因为这具有确保在?>发送到客户端后文件末尾没有空白的优点。

在注释了很多行代码之后,我终于发现这是在类定义之后添加的javascript代码,导致了错误。我仍然不明白为什么,但我想我会在一个单独的。js文件中添加这个javascript代码。感谢所有的答案!

<?php 
class TableRows {
code...
}
?>
<script type="text/javascript">
function myCreateFunction(string,offerId,offerName,iniciadas,finalizadas,unsuccesful,successful,revenue,unsuccesfulPerCent,filtradas,trafico,traficoPerCent,biddingScore) {
    var offerId =  '<tr><th>'+offerId+'</th></tr>';
    var offerName =  '<tr><th>'+offerName+'</th></tr>';
    var iniciadas =  '<tr><th>'+iniciadas+'</th></tr>';
    var finalizadas =  '<tr><th>'+finalizadas+'</th></tr>';
    var unsuccessful =  '<tr><th>'+unsuccesful+'</th></tr>';
    var succesfull =  '<tr><th>'+successful+'</th></tr>';
    var revenue =  '<tr><th>'+revenue+'</th></tr>';
    var unsusccesspercent =  '<tr><th>'+unsuccesfulPerCent+'</th></tr>';
    var filtro =  '<tr><th>'+filtradas+'</th></tr>';
    var trafico =  '<tr><th>'+trafico+'</th></tr>';
    var traficoPerCent =  '<tr><th>'+traficoPerCent+'</th></tr>';
    var biddingScore =  '<tr><th>'+biddingScore+'</th></tr>';
    var table = document.getElementById("myTable");
    var row = table.insertRow(-1);
    if(string == '1'){
        row.className = "alt";
    }else{
        row.className = "alt2";
    }

    var cell1 = row.insertCell(0);
    var cell2 = row.insertCell(1);
    var cell3 = row.insertCell(2);
    var cell4 = row.insertCell(3);
    var cell5 = row.insertCell(4);
    var cell6 = row.insertCell(5);
    var cell7 = row.insertCell(6);
    var cell8 = row.insertCell(7);
    var cell9 = row.insertCell(8);
    var cell10 = row.insertCell(9);
    var cell11 = row.insertCell(10);
    var cell12 = row.insertCell(11);         

    cell1.innerHTML = offerId;
    cell2.innerHTML = offerName;
    cell3.innerHTML = iniciadas;
    cell4.innerHTML = finalizadas;
    cell5.innerHTML = unsuccessful;
    cell6.innerHTML = succesfull;
    cell7.innerHTML = revenue;
    cell8.innerHTML = unsusccesspercent;
    cell9.innerHTML = filtro;
    cell10.innerHTML = trafico;
    cell11.innerHTML = traficoPerCent;
    cell12.innerHTML = biddingScore;

}
</script>

我已经评论了所有的javascript代码,现在ajax做一个成功的调用!