用PHP编写javascript代码

时间:2012-08-13 08:24:46

标签: javascript ajax

我的index.php

    switch ($action){

         case "calendar":

         echo "<script language=\"javascript\">\n";

         echo "document.write('Hello World!')";

         echo "</script>";

         include($_STR_TEMPLATEPATH."/calendar_view.php");

         break;

    }

我的calendar_view.php:

我有一个ajax函数,应该调用action中的calendar index并在calendar_view.php

中的calendar div上显示结果
<script>
    function calendarList()
    {
    var xmlHttp;
    try
      {
      // Firefox, Opera 8.0+, Safari
      xmlHttp=new XMLHttpRequest();
      }
    catch (e)
      {
      // Internet Explorer
      try
        {
        xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
      catch (e)
        {
        try
          {
          xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
        catch (e)
          {
          alert("Your browser does not support AJAX!");
          return false;
          }
        }
      }
    xmlHttp.onreadystatechange=function()
    {
    if (xmlHttp.readyState==4 && xmlHttp.status==200)
      {
      document.getElementById("calendar").innerHTML=xmlHttp.responseText;
      }
    }

      xmlHttp.open("GET","?action=calendar",true);

      xmlHttp.send(null);

    }
  </scritp>

日历div:

<div id="calendar"></div>

当我调用calendarList function时,它确实调用了案例,但未在calendar div中显示结果。

任何帮助。感谢

2 个答案:

答案 0 :(得分:1)

而不是使用脚本来编写文本只输出文本

switch ($action){
     case "calendar":
     echo "Hello World!";
     include($_STR_TEMPLATEPATH."/calendar_view.php");
     break;
}

我不认为插入带有innerHTML作品的脚本会看到Can scripts be inserted with innerHTML?

答案 1 :(得分:1)

那里显示的东西不多。如果一切都像您描述的那样,响应将附加到DOM,但JavaScript警报将永远不会执行。

尝试alert(xmlHttp.responseText);以确保您的回答正确无误。如果是,你可以从那里去。