2012-02-09 16 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出力を渡すことです成功しました。それ以外の場合は、エラーメッセージが表示されます。これどうやってするの?

EDIT:json_encode()を使用する以外にこれを行う方法はありますか?私が抱えている問題は、json_encode()にPHPファイルを含めることです。

+0

これは現在何をしていますか?あなたのjQueryコードは、あなたがエラーコールバックを見逃している以外は、よく見えます。 'error:function(...){...}' –

+0

現時点では、アラートはHTML出力を出力しています。 – GSTAR

+0

アラートの後、htmlは '#details'要素に追加されますか? –

答えて

2

戻り二つの属性を持つJSONオブジェクト:

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

は、マークアップで引用符をエンコードすることを忘れないでください。

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

乾杯。どのようにマークアップをマークアップでエンコードするのですか? – GSTAR

+1

+1。 jsonやxmlを返すのは分かりやすいオプションです。 @GSTARあなたが探しているPHPメソッドは[json_encode()]です(http://php.net/manual/en/function.json-encode.php) – CBusBus

+0

乾杯。 json_encode()に 'include()'ステートメントを置くにはどうしたらいいですか? – GSTAR

関連する問題