无法在php中使用echo显示提示或警报

时间:2017-09-29 14:50:02

标签: php ajax alert

我尝试在其中使用带有JS的简单echo函数来显示警报和提示,在使用AJAX调用的php页面中。我查看了很多其他SO帖子,但无法找到任何可行的解决方案like this one。这是我的代码:

//AJAX
function callPhp(opt, algorithm, arrayReq, solArrayReq) {
if (window.XMLHttpRequest) {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp = new XMLHttpRequest();
}
else {
  // code for IE6, IE5
  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    document.getElementById("debug").innerHTML = this.responseText;
  }
};
xmlhttp.open("GET", "selectknown.php?q="+opt+"&alg="+algorithm, true);
xmlhttp.send();

//selectknown.php
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <?php
      echo '
        <script type="text/javascript">
          alert("Hello world! This is an Alert Box.");
          var accepted = prompt("enter the letters \'yes\' here");
        </script>
      ';
    ?>
  </body>
</html>

2 个答案:

答案 0 :(得分:0)

无需回复脚本,只需将其用作html。

//selectknown.php
<!DOCTYPE html>
<html>
  <head>
  <meta charset="utf-8">
  <title></title>
</head>
<body>
    <script type="text/javascript">
      alert("Hello world! This is an Alert Box.")
    </script>
 </body>
</html>

答案 1 :(得分:0)

首先,如果您希望在echo语句中添加脚本标记,则可以。我认为您的问题是您将代码作为.html文件运行,而不是将其作为.php文件运行。只需将文件命名为file_loader.php即可 代码需要在服务器上运行。 PHP是一种服务器端脚本语言。 或者您可以将下面的代码复制并粘贴到php playground中,以便快速查看它是否有效。

<html>
<head>
<body>
<?php
  echo '
    <script type="text/javascript">
      alert("Hello world! This is an Alert Box.");
      var accepted = prompt("enter the letters \'yes\' here");
    </script>
 ';
?>    
<div id='debug'>Waiting for file to load.....</div>
<script>
//AJAX
 function callPhp(opt, algorithm, arrayReq, solArrayReq) {
   if (window.XMLHttpRequest) {
    // code for IE7+, Firefox, Chrome, Opera, Safari
     xmlhttp = new XMLHttpRequest();
   }
   else {
   // code for IE6, IE5
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
   }
   xmlhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
     document.getElementById("debug").innerHTML = this.responseText;
   }
};
xmlhttp.open("GET", "selectknown.php?q="+opt+"&alg="+algorithm, true);
xmlhttp.send();
</script>
</body>
</html>

其次,为了从ajax代码加载文件,您需要添加由指定的Id标识的元素 - 例如。

<div id='debug'>Waiting for file to load.....</div>

希望您觉得有帮助。