2017-03-12 1 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

더 좋은 방법 같은

뭔가는'success' 기능'콜백을'사용하여 PHP에서 다시 결과를 보내 경고가 –

+1

코드에서 문제가 있습니다를 표시하는 것입니다. PHP에서'POST' 요청과'GET' 요청을 보내고 있습니다. –

+0

@SahilGulati 고마워, 내 질문에 그 오타를 고정. –

답변

3

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에서 쉽게 접근 할 객체를 반환 할 수 있습니다과 의지 또한 설정하고 표시 오류 메시지가 쉽게 경우 반환이 거짓 있습니다.

희망이 있습니다.

0

자바 스크립트에서는 alert() 함수에 반환 값이 없으므로 서버에 클릭 확인을 요청할 때 Ajax 요청을 보낼 수있는 이벤트가 없으므로 PHP는 경고가 표시되었는지 알 수 없습니다.

한 가지 해결책은 사용자가 "확인"또는 "취소"를 클릭하면 anaya ajax 요청을 보내는 $ .ajax()의 success 이벤트에서 confirm() 명령을 사용하는 것입니다. 이

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... 
     } 
    } 
});