2012-02-12 13 views
1

これは基本的なjavascript関数です。これはポストIDが特定のURLに移動するのを行い、いくつかの操作を実行し、結果をtrue/falseとして返します。しかし、これは実際に起こっていません。アラート(データ)でページソース全体を返します。返されるtrue/falseの結果のみを表示したい。jquery data with page source

<?php 
    // Contains all the cool functions 
    if (!isset($_SESSION)) 
    { 
     session_start(); 
    } 

    require('connect.php'); 
?> 

<?php 
    $post_id = $_POST['post_id']; 
    if ($post_id == 1) 
    { 
     return true; 
    } 
    else { 
     return false; 
    } 
?> 
+0

真偽結果はどうですか?それはどこにありますか?単純な文字列/ json値を送信しないのはなぜですか? – karim79

+0

cool_main.phpのコードを変更して、ページ全体ではなくブール値を返すようにしてください。 – Martijn

+0

'cool_main.php'の内容を追加できますか? –

答えて

0

AJAX呼び出しから返されたデータは、この場合cool_main.phpには、あなたが呼び出しているURLによって決定される:PHP

function cool_add(post_id) 
{ 
$.post('cool_main.php', {post_id:post_id}, function(data) { 

    alert(data); 

} 

を助けてください。このjavascriptを修正することは役に立ちません。PHPファイルを修正してブール値の結果を返す必要があります。

+0

私はこれを理解しませんでした。 javascriptはcool_main.phpを呼び出しています。 PHPは、いくつかの操作を実行した後にtrue/falseを返します。しかし、JavaScript(JavaScript)を使用して返されるものが表示されると、アラートの結果とともにページソースが表示されます。私はソースがほしくない。 のようになります。私はタグがどこに来るのか分からない。 PHPコードの私のPHPファイルにはHTMLはありません。 –

+0

上記の質問をあなたのPHPページのソースを含めて編集できますか? –

+0

私のPHP: <?php //すべてのクールな機能が含まれています if(!isset($ _ SESSION)){ session_start(); } require( 'connect.php'); ?> <?php $ post_id = $ _ POST ['post_id']; if($ post_id == 1){ がtrueを返します。 } else { falseを返します。 } 私はconnect.phpが必要ですので、無視してください。これは、jsアラートでのみtrue/falseを与える必要がありますが、私はそれに沿ってページソースを取得しています。 –

0

データにはcool_main.phpが返すものがすべて含まれます。

私の推測では、あなたのcool_main.phpは送信しているポストヴァールを認識していないと思います。

+0

私はこれを理解しませんでした。 javascriptはcool_main.phpを呼び出しています。 PHPは、いくつかの操作を実行した後にtrue/falseを返します。しかし、JavaScript(JavaScript)を使用して返されるものが表示されると、アラートの結果とともにページソースが表示されます。私はソースがほしくない。 のようになります。私はタグがどこに来るのか分からない。 PHPコードの私のPHPファイルにはHTMLはありません。 –

0

いくつかの理由が考えられます。問題はあなたのJavaScriptコードではなく、サーバー側スクリプトロジックcool_main.phpにあります。

あなたのPHPページでは、ajaxリクエストを識別し、あなたの例に応じて「真偽」のみを回答する必要があります。そのデータ以外のブラウザには何も送信されないようにしてください。

ZendのようなMVCフレームワークを使用している場合は、レイアウトやビューを無効にする必要があります。

1

return trueは、関数から値を返すために使用されます。 jQuery AJAX-callは、data変数にPHPファイルが出力されたものを割り当てます。ここで

はJSONを経由してブール値を転送するための簡単な方法です:

echo json_encode(array('result'=>true)); 

のjQuery:

$.post('cool_main.php', {post_id:post_id}, function(data){ 
    alert(data.result); //true 
}, 'json'); 

別の方法:

echo 'true'; 

のjQuery:

$.post('cool_main.php', {post_id:post_id}, function(data){ 
    alert(data); //"true" 
}); 
+0

これは機能しません。助けてください –

+0

私はjsonとどうすればいいのですか教えてください –

+0

変数 'data'はPHPファイルが出力するものです。 'return true'は何も出力しません。これをたとえば'echo 'true/false';'と試してみてください。 –