des1roer
@des1roer
ученье - свет, а неученье - приятный полумрак

Как в iframe передать массив?

делаю следующее - в iframe находится страница с PHPexcel. пробую в заголовке передавать имена ячеек и данные. но вот ие 8 не может передать весь массив (такое ощущение что нельзя больше в заголовке написать). как можно передать массив?

вот так отображаю iframe
<?php

$path = $_SERVER['HTTP_HOST'] . '/phpexcel/export.php';
if (isset($array))
{
    foreach($array as $key => $val)
    {
       // echo "$val $key $array[$key] <br>";
        if (empty($val) || $val == '')
        {   //    echo 'sad';
            unset($array[$key]);}
    }

    $array = '?val=' . json_encode($array);
    echo "<iframe id='ifr' src=http://$path/$array align='left' seamless ></iframe>";
}


upd
а на аяксе тут не выехать?
<?php

$path = $_SERVER['HTTP_HOST'] . '/phpexcel/export.php';
if (isset($array))
{
    foreach($array as $key => $val)
    {
        if (empty($val) || $val == '')
        {  
            unset($array[$key]);            
        }
    }
  
    $array = 'val=' . json_encode($array);
   // $list = $array;
   // echo CHtml::textField('array', $array, array('type'=>'hidden')); 
 
   echo "<iframe id='ifr' src=http://$path/ align='left' seamless ></iframe>;";
}
?>
<script>
    $(document).ready(function () { 
        var path = "<?php echo $path; ?>";
        var data = '<?php echo $array; ?>';
       $.ajax({
            type: 'POST',
            url: "http://"+path,
            data: data,
            success: function (data) {
                $('#excel').html(data);
                // alert(data); 
            },
            error: function (data) { // if error occured
                alert("Error occured.please try again");
                alert(data);
            },
            dataType: 'html'
        });
    });
</script>

возвращает бред
CNSdgxt.jpg
как его заставить xls отдать?
  • Вопрос задан
  • 348 просмотров
Решения вопроса 1
des1roer
@des1roer Автор вопроса
ученье - свет, а неученье - приятный полумрак
можно писать массив в файл, в iframe get`ом писать его имя, в iframe его читать и удалять
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
LittleFatNinja
@LittleFatNinja
горе девелопер, любитель лютой садомии
никак
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Если данных не много, можно сериализировать и передать в url.
$('iframe').src = '/phpexcel/export.php?data=...'

Если данных много, то нужно отправлять POST, сохранять на сервере данные или результат работы phpexcell, возвращать какой-то идентификатор этой операции, а затем уже менять iframe src передавая туда идентификатор.

UPD: >> возвращает бред
Почему бред, это похоже на excel файл. А вы чего ожидали?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы