Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   неправильно передает массив из As3 в php (http://www.flasher.ru/forum/showthread.php?t=130394)

Ar4ibald 24.09.2009 23:46

неправильно передает массив из As3 в php
 
Как передать массив из as3 в php правильно? Передает только 1-ый элемент массива.Делаю так:
Код AS3:

var scriptRequest:URLRequest = new URLRequest("send.php");
var scriptLoader:URLLoader = new URLLoader();
var scriptVars:URLVariables = new URLVariables();
 
scriptVars.nazva = new Array();
 
for(var i:Number=0;i<cart_arr.length;i++){
 
scriptVars.nazva.push(cart_arr[i].name);
 
 
}
 
///// ЕСЛИ ПРОВЕРИТЬ СКОЛЬКО ЭЛЕМЕНТОВ НА ЭТОМ ЭТАПЕ - ТО ВСЕ ВЕРНО
scriptRequest.method = URLRequestMethod.POST;
scriptRequest.data = scriptVars;
 
scriptLoader.load(scriptRequest);


PHP код:

<?php
if( !isset($_POST) || count($_POST) == 0 ) die("&result=no data");


mb_convert_variables("windows-1251", "utf-8", $_POST);


$nazva = $_POST['nazva'];


for (
$a=0; $a<count($nazva) ; $a++) {

$body.= "<br/> Наименование: ".$nazva[$a];

}


wvxvw 25.09.2009 00:17

Просто не используйте URLVariables, с ним есть один неприятный баг.
Кромет того, вы в PHP передаете строку разбитую запятыми, а что вы на стороне PHP с ними пытаетесь сделать - вообще не не понятно... Ну, по крайней мере массив вы точно никуда не передали...

Т.е. у вас уходит:
Код:

http://example.com?nazva=a,b,c,d
а в PHP вы даже не пытаетесь эту строку преобразовать в массив. Т.е. $nazva - это строка, а не массив...

Ar4ibald 25.09.2009 00:40

а если использовать так ?
PHP код:

$nazva = split(",", $_POST['nazva']);

for (
$a=0; $a<sizeof($nazva) ; $a++) {

$body.= "<br/> Наименование: ".$nazva[$a];

} 


wvxvw 25.09.2009 00:56

А если проверить?

PgeorgyV 25.09.2009 10:29

Цитата:

Сообщение от wvxvw (Сообщение 853336)
Просто не используйте URLVariables, с ним есть один неприятный баг.

Интересно, какой?

WRC_S 25.09.2009 10:40

запехни вся в строку через символ определённый а в PHP разбери эту строку методом
Код:

$t = explode("~", $str);

Ar4ibald 25.09.2009 12:07

Вот такой скрипт 100% рабочий, но использовался с as2, но он тоже выдает только первый элемент массива.
PHP код:

$nazva = split(",", $_POST['nazva']);

for (
$a=0; $a<sizeof($nazva) ; $a++) {

$body.= "<br/> Наименование: ".$nazva[$a];

} 

Такое ощущение что зарись идет только первого элемента



////////
PS: все получилось
Код AS3:

scriptVars.nazva = nazva.join('|');

PHP код:

$nazva = explode('|', $_POST['nazva']); 

Спасибо WRC_S за наводку

wvxvw 25.09.2009 13:02

Цитата:

Сообщение от PgeorgyV (Сообщение 853387)
.
Интересно, какой?

http://bugs.adobe.com/jira/browse/FP-1666


Часовой пояс GMT +4, время: 15:07.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.