2010-12-01 29 views
0

Hallo、jquery、AJAXリクエストが新しくなりました。ここに私のhtmlコードはedit_page.phpjquery AJAXリクエスト

    <td>Action: </td> 
           <td class="notselected"> 
            <div id="action_response"></div> 
            <select name="action_db1" id=<?php echo $sel_page['Concession']; ?> onchange="updateaction(this);" > 
             <option value=""></option> 
             <option value="move">Move</option> 
             <option value="copy">Copy</option> 
             <option value="exclude">Exclude</option> 
            </select> 
           </td> 

であるとJavaScriptコードは、ここで私はいくつかのPHPコードを書いているPHPスクリプト*edit_page_advanced_actions.php*を呼び出しています

function updateaction(item) { 
     $.post("edit_page_advanced_actions.php", {concession:item.id, action:item.value, db_name:item.name},function(action_response) { 
     $('#action_response').html(action_response); 

     }); 
} 

です。私はここからデータベースの更新に基づいてedit_page.phpにメッセージを返したいと思います。すなわち呼び出し側スクリプトからのものです。

EDIT: -

私はedit_page_advanced_actions.phpでデータベースを更新しています。私は、edit_page.phpにエラーメッセージまたは成功メッセージを返したいと思います。すなわち、これがトリガされる場所からのものである。たとえば、「正常に更新されました」、「正常にコピーされました」、「DB操作に基づいてユーザーに除外できませんでした」などです。

これはどのように達成できますか。

ありがとうございます!

+1

問題がありますか...? – tvanfosson

+1

あなたの質問は何ですか?何がうまくいかないの? –

答えて

1

php header関数を使用して、httpヘッダーにエラーステータスを返す必要があります。

header("Status: 400 Bad Request"); 
echo "The error is: ...."; 

あなたはその後、使用できる特殊な誤差関数と$.ajax:たとえば

$.ajax({ 
    type: 'POST', 
    url: "edit_page_advanced_actions.php", 
    data: { 
    concession:item.id, 
    action:item.value, 
    db_name:item.name 
    }, 
    succes: function(data, action_response) { 
    $('#action_response').html(action_response); 
    }, 
    error: function(xhr, action_response) { 
    // error code goes here 
    alert(action_response); 
    } 
}); 
+0

はい。あなたはJavaScriptで '.post'の代わりに' $ .ajax'を使うことができるので、別のエラー関数を実装することができます。詳細については、JQueryのドキュメントを参照してください。 'header'と' echo'関数はエラーをクライアントに返すPHPです。 '$ .ajax'呼び出しは、httpステータスコードのためにエラー関数を使うべきであることを知ります。 – Tomas

0

私はあなたのサーバーサイドのメソッドでjsonオブジェクトを返すことをお勧めし、クライアントサイドのajax呼び出しでレスポンスとして使用します。あなたはaction_response変数.post $をやっているので、あなたが

{ Success: true, ErrorMessage: 'An error happened' } 

のようなJSONオブジェクトを返すことができ

は、JSON文字列になり、あなたはjavascriptオブジェクトにそれを解析する必要があります。 JSONレスポンスを解析するため、この時

ルック: http://api.jquery.com/jQuery.parseJSON/

し、クライアント側のコードで:

if(!action_response.Success) { 
    displayErrorMessage(action_response.ErrorMessage); 
} 

EDIT:PHPからJSONオブジェクトを返すために、この記事で

ルック方法

Returning JSON from PHP to JavaScript?

関連する問題