Форум 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) == ) 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, время: 21:57.

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