即使在AJAX调用中明确定义,PHP也说未定义?

时间:2017-06-07 19:36:58

标签: javascript php jquery ajax

我正在研究一些需要使用ajax调用php并获取一些值的函数。我怎么会在下面发布我的JS功能 part

的JavaScript

$.ajax({
        type: "POST",
        url: 'php/getAccountJobs.php',
        ContentType:"application/json",
        dataType:'json',
        data:{email:$.cookie("email")},
        success : function(arr)
        {
            for(var i=0 ; i<parseInt(response); i++) // number of jobs are the response we use there
            {
                var jobmsg = arr[2*i] ; 
                var imgurl = arr[2*i+1]; 
                $.ajax({
                        type: "POST",
                        url: "php/addDivAccountJobs.php",
                        dataType:'json',
                        data: {imgURL:imgurl,message:jobmsg},
                        }).done(function( html ){ alert(html);});
            }
        }
        });

所以我检查了控制台日志并看到了以下错误。

Notice: Undefined index:imgURL

所以我认为使用isset函数来测试是否设置了imgURL值。

PHP

<?php
session_start();
if(isset($_POST["imgURL"]) && isset($_POST["message"]))
{
    $username = $_SESSION["firstname"]." ".$_SESSION["lastname"];
    $imgurl = $_POST["imgURL"];
    $msg = $_POST["message"];
    $fullecho = '<div class="col-md-4">
                    <div class="profile-card text-center">
                        <img class="img-responsive"src="'.$imgurl.'">
                        <div class="profile-info">
                          <h2 class="hvr-underline-from-center" id="jobOwnerName">'.$username.'</h2>
                          <div id="jobMessage">'.$msg.'.</div>
                        </div>
                     </div>
                </div>';
    echo json_encode($fullecho);
    die();
}
else
    echo json_encode("error");
?>

正如我所料,我收到的是警告框中的错误消息。

我的问题

我经历了每个stackexchange问​​题,并试图找到它背后的原因并修复它。但这些解决方案都没有给我一个正确的答案。有人可以帮我找到问题吗?

1 个答案:

答案 0 :(得分:0)

当你的json属性有未定义的值时,它完全从json中消失。所以因为arr [2 * i]或arr [2 * i + 1]某处在循环中得到未定义的值