2017-03-12 21 views
1

AJAXを使用してPHPファイルにデータを送信しています。送信されるデータによってはalert()が表示されるか表示されません。AJAXを使用して警告ボックスがPHPで表示されているか確認してください。

AJAXのsuccess機能の中で、アラートボックスが表示されたかどうかを検出するにはどうすればよいですか?

var called = $("#called").val(); 

$.ajax({ 
    type: "POST", 
    url: "send.php", 
    data: "name=" + called,, 
    success: function(data) { 
     if(alert box was shown) { 
     // something happens 
     }else{ 
     // alert box wasn't shown, something else happens. 
     } 
    }    
}); 

send.php

<?php 
if($_POST['name'] == 'john') { 
    echo' 
    <script> 
    alert("Correct name"); 
    </script> 
    '; 
} 
+2

よう

何かが –

+1

あなたのコードに問題があります。 'POST'リクエストと' GET'リクエストをPHPで送信しています。 –

+0

@SahilGulatiありがとう、私の質問でそのタイポを修正しました。 –

答えて

3

Ajaxのリクエストと表示/はsuccessコールバックでアラートを表示しない構成結果を返送する方が良いでしょう:

$.ajax({ 
    type: "POST", 
    url: "send.php", 
    data: "name=" + called,, 
    success: function(data) {  
     if (data == "show") { 
     // something happens 
     alert("Correct name"); 
     } else { 
     // alert box wasn't shown, something else happens. 
     } 
    }    
}); 

あなたのサーバーで:

if ($_POST['name'] == 'john') { 
    echo "show"; 
} 
+1

ありがとうございます:) –

0

json_encode() php関数を使ってPHPからデータを返すことができます。

PHP:

これは、より良いアプローチとなります。この時点で

if (!isset($_POST['name'] || empty($_POST['name']) { 
    die(json_encode(array('return' => false, 'error' => "Name was not set or is empty"))); 
} elseif ($_POST['name'] == "John") { 
    die(json_encode(array('return' => true))); 
} else { 
    die(json_encode(array('return' => false, 'error' => "Name is different than John."))); 
} 

あなたが成功アラートを表示する必要がある場合や、あなたはJSからの戻り値をチェックして決定することが許可されますコンソールにエラーメッセージを送信する(またはこれまでに何をしたいのか...)。

JS:

var called = $("#called").val(); 

$.ajax({ 
    type: "POST", 
    url: "send.php", 
    dataType: "JSON", // set the type of returned data to json 
    data: {name: called}, // use more readable syntaxe 
    success: function(data) { 
     if (data.return) { // access the json data object 
     alert("Congrats ! Your name is John !"); 
     } else { 
     console.log("Sorry, something went wrong : " + data.error); 
     } 
    }    
}); 

ので、json_encode()はJSから簡単にアクセス可能なオブジェクトを返すことができ、リターンがfalseの場合にも、簡単にエラーメッセージを設定して表示することができます。

希望すると助かります!

0

javascriptでalert()関数に戻り値がなく、ajaxにサーバーにクリック確認を送信するために使用できるイベントがないため、PHPは警告が表示されているかどうかわかりません。

解決策の1つは、ユーザーが「ok」または「キャンセル」をクリックしたときにanaya ajaxリクエストを送信する$ .ajax()のsuccessイベントでconfirm()コマンドを使用することです。より良い方法は、 `` SUCCESS`機能、コールバックを使用して `バックPHPからの結果を送信し、警告を表示するようになり、この

var called = $("#called").val(); 

$.ajax({ 
    type: "POST", 
    url: "send.php", 
    data: "name=" + called, 
    success: function(data) { 

     if (data == "show") { 

      var clicked = confirm("Correct name"); 

      if (clicked == true || clicked == false) { 
       $.ajax({ 
        url: "send.php?clicked=1", 
       }); 
      } 
     } 
     else { 
      // Whatever to do than... 
     } 
    } 
}); 
関連する問題