2017-01-11 7 views
-3
$.ajax({ url: '/my/site', 
    data: {action: 'test'}, 
    type: 'post', 
    **success: function(output) { 
        alert(output);** 
       } 
}); 

上記のスクリプトを使用すると、innerHTML(example.phpの)のみが表示されます。私は上記のコードを別のPHPのURL(example.php)にリダイレクトする私のPHP関数を実行します。私は成功関数を削除する必要がありますか?または、可能な解決策はありますか?PHP関数を実行するためのajax

+2

あなたはajaxレスポンスにブラウザをリダイレクトしようとしていますか?それは動作しません。 e、g http://stackoverflow.com/questions/2927044/redirect-on-ajax-jquery-call –

+0

@Joel_Blumデータベースクエリを処理しようとしていますか?私はそれが動作すると信じています。ただ私の前提が正しいことを期待しています。 – L7117

+2

ajaxコールはリダイレクトされません。 PHP関数を応答させる必要があり、その応答に基づいて、成功関数にjsの位置があります。 – bos570

答えて

0

これは基本的にAjaxの機能です。シンプルにするために、ajaxコールはファイルの内容を取得します。したがって、あなたのPHPファイルがPHPを実行できるサーバーにある場合、コードは実行されます。しかし、唯一のページの「表示」は、AJAX呼び出しによってretreivedされるコンテンツ、例:

file1.php - >何もdiplayedされていない、コードが実行されると、変数に値がかかりますが、AJAX呼び出し>エコー行われ、コードが実行されると、変数に値を取る、AJAX呼び出しがdiplayedれたものだけで文字列を返します -

<?php $x=1; $y=$x+1; /* -> y: 2 */ ?> 

file2.phpは:2

空の文字列が返されます
<?php $x=1; $y=$x+1; echo $y; ?> 

file3.php - PHPの外>すべてのテキストがあまりにもAJAX呼び出しによって返されます:あなたはJSONのように、データを渡す場合y = 2

y = <?php $x=1; $y=$x+1; echo $y; ?> 

は通常、データのフォーマットを使用します。

これは、Ajaxがページをリダイレクトするのではなく、外部コードを実行するか、データを取得することを意味します。少なくとも、リダイレクトするために新しいURLを取得してからJSでリダイレクトすることができます。必要な場合はリダイレクトしますが、呼び出すPHPコードからリダイレクトすることはできません。それは別のページです。

+0

ありがとうございます。しかし、私が欲しいのは、javascriptでPHP関数を実行することです。それでおしまい。 jsが起動された場合 - > PHP関数を起動します。データは必ずしも渡されません。 – L7117

+0

これが見つかりました。 function someFunction(){ エコー「応答」; } if($ _GET ['do'] === "someFunction"){ someFunction(); }私はページが更新されると信じています。 – L7117

+0

それはあなたが何をしたいかによって決まりますが、これは明らかではありません。 Webページをユーザー入力にリダイレクトする場合は、URLへの簡単なリンク、またはjavascript(look for window.location)を使用します。ページの一部をリフレッシュする場合は、JSを実行する必要があります。 Ajaxを使用して呼び出したページでページを構築し、結果を取得します。リターンでJSを使用してページに挿入します。 – Kaddath

0

PHP関数をページ内にエコーすることができ、成功するとそのページを開くためにajaxを使用することができます。

+0

DIdは6年前の質問です。 – Televimsa

関連する問題