PHP变量通过ajax转换为javascript

php variable to javascript via ajax

本文关键字:转换 javascript ajax 变量 PHP      更新时间:2023-09-26

我试图通过ajax将PHP变量转换为javascript变量。

我有一些PHP代码,使这个变量看起来像这样:(我不会把整个代码,因为它的工作,所以只有相关的代码为这个主题。我有一个new_m变量,它是ARRAY,我想传递给它)

shuffle($new_m); 
echo json_encode($new_m);

然后我有一个js文件,它应该捕获回显它看起来像这样:

function getXMLHttp() 
{
  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;
      }
    }
  }
  return xmlHttp;
}
function MakeRequest() 
{
  var xmlHttp = getXMLHttp();
  xmlHttp.onreadystatechange = function()
  {
    if(xmlHttp.readyState == 4)
    {
      var myvar = new Array();
    var myvar=JSON.parse(xmlHttp.responseText);

return myvar;

    }
  }
   xmlHttp.open("GET", "showimage.php", true);
  xmlHttp.send(null);
}

当这段代码不是在单独的页面上,像这里,当myvar是在函数内使用它的工作原理(因为我已经成功地在另一个页面上使用了这段代码)。所以我认为我的问题是没有返回正确的变量或没有以正确的方式返回它。

和最后一段代码是应该使用这个myvar的部分,它看起来像:

<script type="text/javascript" src="js/shuffle.js"></script>
<title>undf</title>
</head>
<body onload="MakeRequest()">

<script type="text/javascript">
alert(myvar);
var pos = 0;
var imgs = myvar;
</script>

什么也没发生。我对ajax和javascript还是个新手。谢谢你的帮助。

你的问题是,当alert( myvar);被执行时,对服务器的请求还没有发生,变量是未定义的(更不用说我认为变量超出了范围,所以你不能访问它)。

你应该设置JS,以便当窗口加载时,你执行请求来检索数据,然后读取它:

<script type="text/javascript">
window.onload = function() {
    var myvar = MakeRequest();
    alert( myvar);
}
</script>

然后可以去掉<body>标签中的onload

请注意,我不能完全确定您是否正确地从MakeRequest()函数返回值,因为return在xmlhttp回调中,而不是在函数中。