javascript不处理所有返回的json变量

时间:2011-11-04 07:17:41

标签: php javascript ajax json codeigniter

我在javascript中处理json变量时遇到问题。

当我尝试将数据发布到php类然后它应该使用JSON返回3个变量时出现问题,但是Firebug + FirePHP告诉我JSON变量正确返回。然后当我尝试将它们中的每一个存储在不同的变量中时(3个javascript变量中有3个返回的json变量)我只得到第一个参数而另外两个是NULL。

您可以在下一个javascript代码中看到:

function UpdateContact(ID)
{
    // get current Contact data
    var full_name,email,mobile;
    $.post("/Cards/index.php/Cont/GetContactInfo",{'id' : ID},
       function(data){
                full_name = data.full_name;
                email = data.email;
                mobile = data.mobile;
                   $( "#dialog2-form" ).html(
    '<p class="validateTips">All form fields are required.</p>'+
    '<form>'+
    '<fieldset>'+
        '<label for="name">Name</label>'+
        '<input type="text" name="Updatefull_name" id="Updatefull_name" class="text ui-widget-content ui-corner-all" value="'+full_name+'" /><br />'+
        '<label for="email">Email</label>'+
        '<input type="text" name="Updateemail" id="Updateemail" value="" class="text ui-widget-content ui-corner-all" value="'+data.email+'"/><br />'+
                '<label for="email">Mobile</label>'+
        '<input type="text" name="Updatemobile" id="Updatemobile" value="" class="text ui-widget-content ui-corner-all" value="'+data.mobile+'"/><br />'+
    '<input type="hidden" id="UpdateContactID" value="'+ID+'"></fieldset>'+
    '</form>'
);
   $( "#dialog2-form" ).dialog( "open" );
 }, "json");
}

只有full_name变量获得了值,但emailmobile变量没有获得任何值。

PHP函数是:

function GetContactInfo()
{
    $Contact = $this->Contacts->GetContacByID($this->input->post('id'));
    $data['full_name'] = $Contact->full_name;
    $data['email'] = $Contact->email;
    $data['mobile'] = $Contact->mobile;
    echo json_encode($data);
}

注意:我在XAMPP localhost服务器上使用CodeIgniter PHP Framework

1 个答案:

答案 0 :(得分:0)

在使用之前,您需要检查字段是否存在:

var field_to_read = some_default_value;
if (typeof data['name_of_field'] !== 'undefined') {
   field_to_read = data['name_of_field'];
}

我建议你使用类似于上面的结构来读取你的JSON数据。