ugrás a tartalomhoz

while függvény+legördülőmenü

Tanul0 · 2008. Dec. 16. (K), 14.12

$id=$_GET['id'];
$get_szero = mysql_query("SELECT * FROM szerverek WHERE felhID='$felhID'");
echo '<select name="id"><option value="0">Válassz...</option>';
	while($lek=mysql_fetch_array($get_szero))
	{
	extract($lek);
	$id=$szeroID;
	echo '<option value="'.$id.'">xzn.hu:'.get_szero_port($szeroID).'</option>';
	}	
echo '</select>';
echo '<form name="szeroform" method="post" action="index.php?oldal=szerver&muvelet=szervereim&id='.$id.'">';
echo '<input type="submit" name="Submit" value="Kiválszt" /></form>';
Nos a problémám a következő. Nem tudok rájönni, hogy hogyan tudom POST-olni azt az id-t amit kiválasztok a listából. Sok féle képpen próbálkoztam már, de nem megy. Mindig csak az utolsó id-t irja ki. pls help. A while függvényen kívüli html kód eredetileg template-ben van, csak azért írtam ki, hogy látható legyen.
 
1

Felülírod

Poetro · 2008. Dec. 16. (K), 15.12
A while ciklusodban mindig felülírod az ID változót. Megoldás lehet a következő (az adatbázis táblájának ismerete hiányában):
while($lek = mysql_fetch_array($get_szero)) {  
  $szerzoID = $lek['id'];  
  echo '<option value="'. htmlspecialchars($szerzoID, ENT_QUOTES) 
    .'">xzn.hu:'. get_szero_port($szeroID) .'</option>';  
}
Én mondjuk már az elején elvesztettem a fonalat, hogy nálad melyik változó mit jelent. Főleg mivel agyba főbe írod felül őket.
3

sajnos ugyan az a probléma :(

Tanul0 · 2008. Dec. 16. (K), 15.43
sajnos ugyan az a probléma :( a while függvényen kívül az $id értéke a tábla utolsó tartalmának az értéke lesz :(
2

az adatbázist lekérdezem az

Tanul0 · 2008. Dec. 16. (K), 15.39
kipróbálom, de:

az adatbázist lekérdezem az extract($lek); -el a sorok értékeit, tehát a szeroID nevű sor tartalma = $szeroID; -vel, és nem kell a htmlspecialchars mivel int tipusú (ha jól tudom, de lehet tévedek, mivel kezdő vagyok.) Nekem az lenne a lényeg hogy a form-ba action=index.php?oldal=szerver&muvelet=szervereim&id='.$id.' az $id értéke a legördülő menüben kiválasztott <option value='.$id.'> kerüljön. Ezt hogyan tudnám megoldani?
4

Leírás

Poetro · 2008. Dec. 16. (K), 15.53
Ha már itt tartunk leírhatnád, hogy mi is van a táblába, és miért fontos az extract, amivel folyton felülírod a változóidat? Az extract-ot meg egyébként is felejtsd el, a legtöbb esetben többet ront, mint használ.
Egyébként a form action-je csak a POST után módosul arra amit megadtál a formban, ugyanis addig a szervernek nincs tudomása a változásról. Ha az id-t akarod módosítani, akkor a form legyen GET típusú, és ne add meg az IDt az action-ben.
6

Esetleg pédával?

Tanul0 · 2008. Dec. 16. (K), 17.02
Esetleg pédával?
7

Példa

Poetro · 2008. Dec. 16. (K), 17.50
Valami ilyesmi.
$id = intval($_GET['id']);
echo '<form name="szeroform" method="get" action="index.php&id='.$id.'">';
echo '<input type="hidden" name="oldal" value="szerver">'
echo '<input type="hidden" name="muvelet" value="szervereim">'
echo '<select name="id"><option value="0">Válassz...</option>';
$get_szero = mysql_query("SELECT * FROM szerverek WHERE felhID='$felhID'");
while($lek = mysql_fetch_array($get_szero)) {
  echo '<option value="'. $lek['szeroID'] .'"'.
    ($id == $lek['szeroID'] ? ' selected="selected"' : '') // Kivalasztjuk a jelenleg kivalasztottat.
    .'>xzn.hu:'. get_szero_port($lek['szeroID']) .'</option>';
}
echo '</select>';
echo '<input type="submit" name="Submit" value="Kiválszt" /></form>';
8

nos nagyjából értem, csak 1

Tanul0 · 2008. Dec. 16. (K), 20.18
nos nagyjából értem, csak 1 valamit nem
($id == $lek['szeroID'] ? ' selected="selected"' : '')
a kettőspontnak mi a szerepe? mert ha jól látom az egy logikai vagy kapcsolat, de a másik lehetőség mért üres? egy picit nem értem :S sorry

Egyébként sikerült köszönöm szépen!!!!!!


csak az actionbe nem kellett csak annyi hogy action="index.php?">
9

Selected

Poetro · 2008. Dec. 16. (K), 21.52
Ha az aktuális elem a kijelelölt akkor kell csak a selected. Az == ugye összehasonlítás a ? : pedig egy nyelvi elem, úgynevezett ternáris operátor.
10

Köszönöm a segítséget!!! :)

Tanul0 · 2008. Dec. 17. (Sze), 02.49
Köszönöm a segítséget!!! :)
5

Értem akkor elfelejtem, az

Tanul0 · 2008. Dec. 16. (K), 16.38
Értem akkor elfelejtem, az extractot.
A tábla:
`szeroID` int(11) NOT NULL auto_increment,
`felhID` int(11) NOT NULL default '0',
`port` varchar(255) NOT NULL default '0',
`tipus` varchar(255) NOT NULL default '0',
`slot` varchar(255) NOT NULL default '0',
`konyvtar` varchar(255) NOT NULL default '0',
`www-data_user` varchar(255) NOT NULL default '0',
PRIMARY KEY (`szeroID`)
) ENGINE=MyISAM DEFAULT CHARSET=UTF-8 AUTO_INCREMENT=4 ;

Nost, én azt szeretném ezzel az egésszel elérni, hogy ha egy felhasználó megnyitja azt az oldalt hogy szerver, akkor megjelenik egy legördülő menü amiben azok a szerverek vannak amik az övé, és amelyiket kiválasztja azt megnyitja a hozzátartozó oldalt.