Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将php数组传递给父javascript main_Javascript_Php_Arrays_Iframe - Fatal编程技术网

将php数组传递给父javascript main

将php数组传递给父javascript main,javascript,php,arrays,iframe,Javascript,Php,Arrays,Iframe,我陷入了一些我真的不明白的事情。我得到了一个作为Iframe父级的Javascript页面,Iframe在php中执行它的rutine,然后返回一些html信息、一些变量和一个数组,问题是,如何正确地发送数组,尽可能多地尊重我的代码 JAVASCRIPT: function showPlaceFrame(user_id,page_id){ var number = user_id; var locationId = page_id; var iFrameOF = document.c

我陷入了一些我真的不明白的事情。我得到了一个作为Iframe父级的Javascript页面,Iframe在php中执行它的rutine,然后返回一些html信息、一些变量和一个数组,问题是,如何正确地发送数组,尽可能多地尊重我的代码

JAVASCRIPT:

function showPlaceFrame(user_id,page_id){
  var number = user_id;
  var locationId = page_id;
  var iFrameOF = document.createElement('iframe');
  iFrameOF.id = 'locationFrame';
  iFrameOF.src = '/php_fyles/openPlace.php?user_id='+number+'&page_id='+locationId;       
  iFrameOF.style.float = 'top';
  iFrameOF.frameBorder='0';             
  var homeExtendedDiv_ = document.getElementById("homeExtendedDiv");
  homeExtendedDiv_.appendChild(iFrameOF);
}
function parsePlaceFrame(){
    var locationFrame_ = document.getElementById("locationFrame");                              
    FB.XFBML.parse(locationFrame_);
    autoResize("locationFrame");
    var iFrameOF = document.getElementById('locationFrame');
    var innerDoc = iFrameOF.contentWindow.document;
    var result1 = innerDoc.getElementById('result1'); //These are tries
    var result2 = innerDoc.getElementById('result2'); //These are tries
    alert(result2);                                   // 
    var ge1 = iFrameOF.contentWindow['result1'];      //
    var ge2 = iFrameOF.contentWindow['result2'];      //
    alert(ge1);                                       //These are tries
    alert(ge2);                                       //
}
PHP:


我现在得到的是一个“null”值,我确信它在php中不是空的,因为我已经检查过了。有什么想法吗?

不要使用
var result=
尝试在那里设置全局变量,使用
window['result']=
parent['result]
设置全局javascript变量。调用
parsePlaceFrame
时,您可以立即访问变量,而不是试图从iFrame声明它

编辑:更新

在PHP中,您有以下内容:

echo '<script type="text/javascript" charset="UTF-8">';
echo 'var result1 = ' . json_encode($result) . ';';
echo 'var result2 = ' . json_encode($ret_obj_place) . ';';
echo 'parent.parsePlaceFrame()'; 
echo '</script>';
应该是

var ge1 = window['result1'];      //
var ge2 = window['result2'];      //

访问我们用PHP设置的全局变量。

代码是什么?我正在努力,但没有成功。。。我是一个木偶!没问题。现在编辑答案。它对您所写的内容有意义,但它会变成“未定义”值。对不起,我和我的问题都很奇怪!!!
echo '<script type="text/javascript" charset="UTF-8">';
echo 'window[\'result1\'] = ' . json_encode($result) . ';';
echo 'window[\'result2\'] = ' . json_encode($ret_obj_place) . ';';
echo 'parent.parsePlaceFrame()'; 
echo '</script>';
var ge1 = iFrameOF.contentWindow['result1'];      //
var ge2 = iFrameOF.contentWindow['result2'];      //
var ge1 = window['result1'];      //
var ge2 = window['result2'];      //