Ez miért nem működik?
Még teljesen kezdő vagyok!
csináltam egy index.html fájlt. Ebbe beírtam a body-ba, hogy:
<form action="teszt.php" method="post">
<input type="text" name="szam1" size="2"> x <input type="text" name="szam2" size="2"> =<br>
<input type="submit" value="Számolj!">
</form>
A teszt.php-ba pedig ezt írtam:
<?php
$szam1=$_POST["$szam1"];
$szam2=$_POST["$szam2"];
$eredmeny=$szam1 * $szam2;
print $eredmeny;
?>
És az eredmény 0.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
nem.
azért nem, mert (igen, így írjuk: "mert"), a $POST-változóban érkezik az adat, ami tömb.
Ennek a tömbnek van pár eleme.
Ezekre az elemekre lehet hivatkozni közvetlenül:
$ize=$POST['tomb_index_neve'];
vagy elhet hivatkozni indirekten, változón keresztül:
$ize=$POST[$_indexet_tartalmazo_valtozo], vagy
$ize=$POST["$_indexet_tartalmazo_valtozo"], vagy
$ize=$POST['$_indexet_tartalmazo_valtozo'].
Írok ide neked egy pár soros kódot, copy-paste, és meglátod az eredményt...
<?php
$index1='index1';
$tomb['index1']="tömb első elem<br>\n";
$tomb['index2']="tömb második elem<br>\n";
$tomb['$index1']="Lófaszt, ennek az indexe a '\$index1' <br>\n";
echo "['index1'] direktben: <b>".$tomb['index1']."</b>";
echo "[$index1] eseteben: <b>".$tomb[$index1]."</b>";
echo "['\$index1'] eseteben: <b>".$tomb['$index1']."</b>";
?>
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
egy backslash kimaradt...
echo "['index1'] direktben: <b>".$tomb['index1']."</b>";
echo "[\$index1] eseteben: <b>".$tomb[$index1]."</b>";
echo "['\$index1'] eseteben: <b>".$tomb['$index1']."</b>";
Hát ezt mer télleg nem vágom sry h húzlak..
még a tömb körül se tiszta minden...
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
"még a tömb körül se tiszta minden..."
Pedig az is "trivia", képzeld úgy el, mint egy fiókos szekrényt.
Adott a szekrény, ez a tömb.
Adott a szekrény fiókja, ez lesz a tömb eleme.
Mondjuk azt, hogy a szekrénybe csak zokni mehet, így lesz egy "zokni" típusú tömböd, minden eleme "zokni".
Ha kell egy zokni, akkor azt már tudod, hogy a szekrényhez kell menni (annak a fiókjaiban vannak), már csak azt kell tudni, hogy "melyik fiók".
Mehetsz a fiókon lévő címke alapján ("piros"), ekkor a tömböd elemére a "piros" lesz a tömb indexe. (index az, ami alapján megtalálod a tömb elemét)
Mehetsz a fiók száma alapján, legyen felülről a második. Ekkor a "2" lesz az index.
Nézzük csak ezt PHP alatt:
$zokni['piros']=2;
$zokni['zöld']=1;
$zokni['fehér']=4;
$zokni['sport']=8;
De nem csak zoknival él az ember... lehet ugye póló, gatya is...
$polo['feher']=1;
$polo['fekete']=9;
$polo['csikos']=3;
$gatya['tiszta']=4;
$gatya['koszos']="sok";
oké, de ezeket kezeljük már együtt, végülis ruhák, vagy mifene...
$ruhak['zokni']=$zokni;
$ruhak['gatya']=$gatya;
$ruhak['polo']=$polo;
hány piros zoknim is van?
$floki=$ruhak['zokni']['piros']; (a $floki változóban a "2" lesz)
Hoppacsek... ez meg már majdnem objektum-orientált... (többszörös indexű tömb).
Ugorjunk.
Haverokról mit tudunk? legalább a vezeték- és keresztnevét...
$haver['veznev']="Kiss";
$haver['kernev']="Ubul";
$haverok[]=$haver;
$haver['veznev']="Nagy";
$haver['kernev']="Józsi";
$haverok[]=$haver;
Affene... a $haverok meg mifene? Dinamikus tömb, meghatározott index nélkül, így később a tömb elemének sorszámára lehet csak hivatkozni (az első elem sorszáma a 0 !)
$haverok[0]['veznev'] mit fog adni? ("Kiss")
...és mit fog adni a var_dump($haverok); ?
NULL? xDDDDDDDDDDDD
De amm kössz így sokkal világosabb xD
hal-->halászat?? xD
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Válaszolok már magára a kérdésre:
Tehát van egy ilyened:
<input type="text" name="szam1" size="2">
ez egy beviteli mező, a neve "szam1"
Ha a php-nek elküldöd POST adattal, akkor a feldolgozóban így éred el: $_POST['szam1']
A $_POST egy tömböt ad vissza, és a nevét az űrlapon megadott name="szam1"-ból kapja, vagyis konkrétan így kéne kinéznie a kódnak:
$szam1 = $_POST['szam1'];
$szam2 = $_POST['szam2'];
$eredmeny = $szam1 * $szam2;
print $eredmeny;
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!