我在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
变量获得了值,但email
和mobile
变量没有获得任何值。
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
答案 0 :(得分:0)
在使用之前,您需要检查字段是否存在:
var field_to_read = some_default_value;
if (typeof data['name_of_field'] !== 'undefined') {
field_to_read = data['name_of_field'];
}
我建议你使用类似于上面的结构来读取你的JSON数据。