2015-05-26 4 views
2

Я хочу передать переменную или, вернее, сообщение из моего файла PHP в мой внешний файл JavaScript. Я посмотрел на другие ответы на вопросы, и кажется, что PHP-файл на самом деле не является полным PHP, в нем есть некоторые js-коды.Как передать данные PHP во внешний JavaScript

Я просто хочу передать простое сообщение, чтобы я мог использовать alert() во внешнем js, чтобы показать сообщение.

Должен ли я использовать JSON (который я не знаю, как)? Или есть более простой способ? Я новичок во всем этом, поэтому, возможно, простое объяснение с ответом без jQuery будет оценено по достоинству.

В файле PHP:

function checkDuplicateTesterName($tester_name) 
{ 
    $table_info = "TBL_TESTER_LIST"; 
    $query_string = "select tester_name from $table_info where tester_name = $tester_name"; 
    $result = @mysql_query($query_string) or die (mysql_error()); 
    $checkTester = mysql_num_rows($result); 
    if($checkTester>0) 
    { 
     echo $message = "Error, please check again."; //I want to pass this 
    } 
} 

Во внешнем файле JS:

function checkTester() 
{ 
    var tester_name = document.getElementById("tester_name").value; 
    var page = "database.php"; 

    var parameters = "&tester_name="+tester_name+"&action=check"; 
    var xmlhttp = new XMLHttpRequest(); 

    if(xmlhttp==null) 
    { 
     alert("Your browser does not support ajax!"); 
     return false; 
    } 
    xmlhttp.onreadystatechange=function() 
    { 
     if(xmlhttp.readyState==4) 
     { 
      alert("function success."+message); //Alert error message from PHP here 
     } 
    }; 
    xmlhttp.open("GET", page+"?"+parameters, true); 
    xmlhttp.send(null); 
} 
+0

Какая проблема в текущем коде? – Rayon

ответ

3

Отклик в responseText поле объекта XHR, так что вам нужно сделать:

xmlhttp.onreadystatechange=function() 
{ 
    if(xmlhttp.readyState==4) 
    { 
     var message = xmlhttp.responseText; 
     alert("function success."+message); //Alert error message from PHP here 
    } 
}; 

Вам не нужно использовать JSON, если вы просто возвращает строку. JSON полезен, если вы возвращаете массив или объект.

+0

Именно то, что я искал. Спасибо! – hzq

0

Вы можете сделать это, определив глобальную переменную, значение которого происходит от PHP как этот ниже.

<script type="text/javascript"> 
    var message = '<?= $message ?>'; 
</script> 

Это простой способ.

+0

Это не внешний JS-файл. – Barmar

+0

Да, но вы можете ссылаться на переменную сообщения из вашего внешнего js-файла. –

+0

Но это будет значение с момента загрузки страницы, а не значение, вычисленное во время запроса AJAX. – Barmar

Смежные вопросы