如果我从另一个装有ajax的php文件调用php文件,我会收到错误

时间:2015-10-23 11:37:41

标签: javascript php jquery ajax

就像标题所说,我正在对这样的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);
    }

这是正常的吗?用一个ajax调用不能在另一个php文件中做东西??

编辑:添加AL_createTBObj.php的内容, 基本上它从类tableRows.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();
?>

类tableRows.php中有一些echo 'content' ..但是这些方法还没有被调用....

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

在评论了很多代码后,我终于认为这是在导致错误的类定义之后添加的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做了成功的电话!