2012-02-09 135 views
1

我创建了一些功能,通过提交表单,会显示成功消息,并通过AJAX提取并显示更新的详细信息。通过AJAX返回数据和成功/错误消息

控制器:

public function updateAction() 
{ 
    $query="my query" 

    if(mysql_query($query)) 
    { 
     echo "Your changes have been saved successfully"; 

     $customer=Customer::getDetails($_POST['cust_id']); 

     include('application/view/admin/customer/_view.php'); 
    } 
    else 
    { 
     echo "There was a problem saving your changes"; 
    } 
} 

查看:

$('#update-customer-form').submit(function(){ 
    $.ajax({ 
     url: 'admin/customer/update', 
     type: 'POST', 
     data: $(this).serialize(), 
     success: function(result){ 
      alert(result); 
      $('#details').html(result); 
     } 
    }); 

    return false; 
}); 

我想要做的就是通过成功的消息,以及从_view.php文件输出的HTML,如果在保存记录成功。否则,只显示一条错误消息。我怎样才能做到这一点?

编辑:有没有什么办法可以做到这一点,而不是使用json_encode()?我遇到的问题是在我的json_encode()中包含PHP文件。

+0

现在正在做什么?你的jQuery代码看起来不错,除了你错过了一个错误回调。 'error:function(...){...}' – 2012-02-09 15:13:44

+0

目前,警报正在输出HTML输出。 – GSTAR 2012-02-09 15:35:41

+0

,然后在提醒后,html会被追加到'#details'元素中? – 2012-02-09 15:43:12

回答

2

返回一个JSON对象有两个属性:

{ "success": "true", "markup":"<div>markup goes here</div>" } 

记住的标记编码报价。

success: function(result){ 
     if (result.success=='true') { 
      $('#details').html(result.markup); 
     } 
    } 
+0

干杯。如何在标记中编码引号? – GSTAR 2012-02-09 17:14:07

+1

+1。返回json或xml是明智的选择。 @GSTAR你要找的php方法是[json_encode()](http://php.net/manual/en/function.json-encode.php) – CBusBus 2012-02-09 19:52:40

+0

干杯。我怎么把我的'include()'语句放在json_encode()中? – GSTAR 2012-02-10 09:37:18