ugrás a tartalomhoz

PHP-s tömb flashben feldolgozása

wurlitzer · 2010. Feb. 12. (P), 11.32
Sziasztok!

A következő gondba ütköztem. Adott egy flash űrlap kereső része ami a találati értéket egy php progival dolgozza fel. A visszaadott érték a php-ból egy tömb. A küldés, a feldolgozás jó. A visszaküldéssel van a gond (ha listaként küldöm vissza akkor megy, tehát nem szintaktikai hiba van). A program fonetikusan és nagy vonalakban az érthetőség miatt:

FLASH:
kuld = keresoszo

function phpload() {
_root.loadVariables("kereso.php", "POST");
}

phpload();
_root.onData = function() {
talalat = fogad
}
-----
PHP:
<?php
$feldolg = $_POST["kuld"];

itt feldolgozom az adatokat és tömbbe rendezem
$adat = array()

print ("&fogad = $adat"); // ez a fontos rész ami érdekel
?>
-----
Ami a gond: a &fogad visszaadott értéke így: ARRAY.
Ha így akarom kiiratni: $fogad[0] akkor UNDEFINED akárcsak a &fogad[0] = $adat[0].
DE! Ha így adom meg: &fogad = $adat[0] akkor a "fogad" kiírja az "adat" tömb első elemét.

A kérdésem hogy flashben az átadott tömböt hogyan tudom feldolgozni. Megy e ebben a formában vagy más megoldást kell használni?

köszönöm a segítséget!
*p*
 
1

$index = 0 foreach ($adat as

Poetro · 2010. Feb. 12. (P), 12.14

$index = 0
foreach ($adat as $val) {
  print 'adat_'. ($index++) .'='. urlencode($val) .'&';
}
print '&items='. $index;
És ekkor Flashben adat_0, adat_1 stb. néven tudod elérni.
Mondjuk mindenképpen ajánlom, hogy ilyenre loadVariables helyett mondjuk XMLt használj. Mondjuk ActionScript 1-es kód eleve fura, amikor az ActionScript 3 is már jópár éve kijött, a 2-ről nem is beszélve.
2

Köszi a választ. Az helyzet

wurlitzer · 2010. Feb. 12. (P), 13.12
Köszi a választ.

Az helyzet az hogy egy régi oldalt írok át és első körben a programozó kicserélte a lekérdezést és átrakta az adatokat tömbbe (Az XML-t javasoltam én is de a folyamatos adat bővítés miatt (egyre növekvő adatbázis) ezt elvetettük.

Most jelenleg én csak korrigálom a történetet a teljes átírás majd ezután jön, mert a lényeg hogy addig is működjön. (hát igen, néha a programozó is gondolkodhatna előre tudom de ez már mellékes)

*p*
3

XML

Poetro · 2010. Feb. 12. (P), 20.33
Nem értem az összefüggést a bővítés és az XML mellőzése között. Mi a baj az XML-lel, ami a bővítéssel áll szemben? XML-be akár mikor lehet újabb elemeket belerakni, ahogy egy PHP-val generált táblázatba is lehet újabb sorokat belerakni. És ha a a táblázat XHTML akkor végeredményben XML is.
4

Sajnos ebben a project-ben én

wurlitzer · 2010. Feb. 13. (Szo), 02.40
Sajnos ebben a project-ben én csak a grafikát adom. Az ami nekünk jó az nekik nem. Gondolom soronként kapja a fizetését a programozó fiúcska :)).

Más.
A kódot köszi, kipróbáltam remekül működik. De az örömöm még nem teljes. De mindig tanul az ember valamit és ezért szeretem ezt az oldalt.
Szóval. Azt hogyan tudom megoldani hogy flash-ben egy ciklussal olvassam be a kapott adatokat egy tömbbe?

Ami eddig tuti megy:

var my_lv:LoadVars = new LoadVars();
my_lv.sendAndLoad("abc.php",my_lv,"POST")
my_lv.onLoad = function(success:Boolean) {
if (success) {
cimke.text = "Sikeres adatfogadás.\n "+this.adat_0;
cimke2.text = this.items
} else {
cimke.text = "Hiba!\n "
}
}
stop();


És a gondom:
Mondjuk egy for ciklussal építeném fel ezt a tömböt az adat_0-tól az adat_100-ig
de elakadtam ott hogy élve egy példával ami nem működik: tomb[a] = adat_+"a" ahol az "a" értéke 0-100. Valamiért az adat_+"a" visszaadási értéke undefined azaz ezt így nem tudja értelmezni.

Egyébként nem általánosan zárkozom el az xml-től amit én is használok menühöz, képtárhoz (sőt most van egy másik olyan munkám ahol elég komoly adathalmaz van xml-ben adatbázis helyett és itt a programozó srác másképp is áll hozzá az egészhez), hanem csak ennél az átkozott munkánál.

*p*
5

Ciklus

Poetro · 2010. Feb. 13. (Szo), 13.43
var my_lv:LoadVars = new LoadVars();
my_lv.sendAndLoad("abc.php",my_lv,"POST") 
my_lv.onLoad = function(success:Boolean) {
  if (success) {
    cimke.text = "Sikeres adatfogadás.\n "+this.adat_0;
    cimke2.text = this.items;
    for (var i:int = 0; i < this.items; i++) {
     trace(this['adat_' + i]);
    }
  } else {
    cimke.text = "Hiba!\n "
  }
}
stop();
6

Kedves Poetro! Köszönöm a

wurlitzer · 2010. Feb. 13. (Szo), 16.45
Kedves Poetro!

Köszönöm a segítséged!

Érdekes hogy hasonló leírást találtam a neten de az valamiért nem működött.

Viszont ezzel sikerült kicsit működőképessé pofozni az oldalt.
Persze a nagy munka majd ezután jön.

*p*
7

Kérdés

dowhile · 2010. Feb. 13. (Szo), 20.54
Sziasztok!

Bocsánat, hogy közbeszólok, de nem értek egy apróságot.

AS2-ben a flash a következő részletet eldobja, nem tudja értelmezni:

for (var i:int = 0; i < this.items; i++) {

gyakorlatilag az i:int=0 -val van baja. AS2-ben ez hogy van helyesen.

A másik kérdésem/észrevételem
wurlitzer tömbbe szeretné tenni az "adat_" tartalmát, de erre vonatkozó utasítást nem láttam csak kiiratást. Lehet ő tudja a megoldást de az én kedvemért leírnád(tok)

Köszönöm

dowhile - mert tanulni érdemes és nem szégyen...
8

Tömbbe pakolás

Poetro · 2010. Feb. 13. (Szo), 21.53
var tombom = new Array()
for (var i = 0; i < this.items; i++) {
  tombom.push(this['adat_' + i]);
}