Kezdőoldal » Számítástechnika » Weblapkészítés » Ez miért nem működik?

Ez miért nem működik?

Figyelt kérdés

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.


2012. jún. 14. 13:20
1 2
 11/19 A kérdező kommentje:
De nem vágom $szam1 és $szam2 nem definiálatlan, mer index.html ből a form megadja az értékét... Nem?
2012. jún. 14. 14:04
 12/19 anonim ***** válasza:

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>";

?>

2012. jún. 14. 14:30
Hasznos számodra ez a válasz?
 13/19 anonim ***** válasza:

egy backslash kimaradt...

echo "['index1'] direktben: <b>".$tomb['index1']."</b>";

echo "[\$index1] eseteben: <b>".$tomb[$index1]."</b>";

echo "['\$index1'] eseteben: <b>".$tomb['$index1']."</b>";

2012. jún. 14. 14:38
Hasznos számodra ez a válasz?
 14/19 A kérdező kommentje:

Hát ezt mer télleg nem vágom sry h húzlak..

még a tömb körül se tiszta minden...

2012. jún. 14. 14:48
 15/19 A kérdező kommentje:
Az a baj h amiből eddig tanultam az egy szót se ír erről, csakhogy írjuk ki azt amit a "text" be beírunk előtte...
2012. jún. 14. 14:53
 16/19 anonim ***** válasza:

"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); ?

2012. jún. 14. 17:18
Hasznos számodra ez a válasz?
 17/19 A kérdező kommentje:

NULL? xDDDDDDDDDDDD

De amm kössz így sokkal világosabb xD

hal-->halászat?? xD

2012. jún. 14. 19:27
 18/19 anonim ***** válasza:

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;

2012. jún. 14. 21:53
Hasznos számodra ez a válasz?
 19/19 A kérdező kommentje:
Igen köszönöm erre már rávezettél :) és működik is :)
2012. jún. 15. 05:49
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!