ugrás a tartalomhoz

PHP-MYSQL-select option

954rr · 2010. Már. 31. (Sze), 00.03
Sziasztok!
A kód:

<td>Tantargy<br /></td>
	<td>
	        <?
		$sqll = "SELECT tantargy.id,tantargy.tantargykod FROM tantargy,felvett_tantargy WHERE tantargy.id=felvett_tantargy.tantargy_id GROUP BY tantargy_id";
		$sqlleredmeny = mysql_query($sqll);
			
		$i=0;
		while ($tantargykod = mysql_fetch_array($sqlleredmeny)) {
			$tanid["$i"] = $tantargykod['id'];
			$tan["$i"] = $tantargykod['tantargykod'];
			$i++;
		}
		?>
		<select name="tantargyx[]">
		<?
			for ($i=0; $i<mysql_num_rows($sqlleredmeny); $i++) {
			echo ?><option value="<?=$tanid["$i"]?>"><?=$tan["$i"]?></option>;
			<?}?>

			</select>
	</td>
	<td><input type="submit" value="Valaszt" OnClick="<?
					
	if (isset($tantargyx)) {			
		foreach ($tantargyx as $felvx) {
		$felvtanx = $felvx;
		$_SESSION['bejeltant'] = $felvtanx;
		}
	}
	?>"></td>
A Valaszt gombra kattintva jelenik csak meg egy masik lista. Hogy tudnám azt megoldani, hogy miutan kivalasztottam az elso listabol amit szeretnek es kattitok, utana a valasztott elem maradjon a listaban megjelenitve es ne ugorjon vissza alapbol az elso elemre?

Segitsegeteket előre is köszönöm!
 
1

HTML

janoszen · 2010. Már. 31. (Sze), 08.29
Egyszeruen. Amikor kigeneralod az option resz, amit eppen kiiratsz, megegyezik-e a kivalasztott elemmel. Ha igen, hozzacsapod a selected HTML tulajdonsagot.
2

Igy gondoltad?

954rr · 2010. Már. 31. (Sze), 10.39
Igy mert nem mukodik?

<td>Tantargy<br /></td>

				<td>
				<?
				$sqll = "SELECT tantargy.id,tantargy.tantargykod FROM tantargy,diakreghez WHERE tantargy.id=diakreghez.tantargy_id GROUP BY tantargy.id";
				$sqlleredmeny = mysql_query($sqll);
			
				$i=0;
				while ($tantargykod = mysql_fetch_array($sqlleredmeny)) {
				$tanid["$i"] = $tantargykod['id'];
				$tan["$i"] = $tantargykod['tantargykod'];
				$i++;
				}
				if (isset($_SESSION['felvtanr'])) {$idellen = $_SESSION['felvtanr'];}
				?>
				<select name="tantargyx[]">
				<?
				for ($i=0; $i<mysql_num_rows($sqlleredmeny); $i++) {
				echo ?><option value="<?=$tanid["$i"]?>" <?if ($idellen=$tanid["$i"]){echo "selected";}else{}?>><?=$tan["$i"]?></option>;
				<?}?>

				</select>
				</td>

				<td><input type="submit" value="Valaszt" OnClick="<?
					
				if (isset($tantargyx)) {			
				foreach ($tantargyx as $felvx) {
				$felvtanx = $felvx;
				$_SESSION['felvtanr'] = $felvtanx;
				}
				}
				?>"></td>
3

<?if

bendesoft · 2010. Már. 31. (Sze), 12.29
 <?if ($idellen=$tanid["$i"]){echo "selected";}else{}?>>
helyett, talán inkább:
 <?if ($idellen == $tanid["$i"]){echo "selected";}?>>
:)
4

Kicsereltem. Leirom hogy

954rr · 2010. Már. 31. (Sze), 12.47
Kicsereltem.
Leirom hogy tortennek a dolgok:
1. megnyitom az oldalt,amig elso listaban nevalasztok tantargyat,addig a masik lista nem jelenik meg.
2. miutan valasztok tantargyat,rakattintok a gombra, akkor elmeletileg beallitodnak a valtozo ertekei es ujra meghivja magat az oldal.
3. miutan ujra betoltodot az oldal, mar megjelenik a masodik lista is, viszont az elso listaban meg mindig nem az elozoleg kivalasztott elem lathato,hanem az elsore ugrik.
4.ha megegyszer kattintok a gombra,mindegy milyen tantargyat valasztok,akkor mar azt teszi be amit elozoleg valasztottam...
nem birok rajonni hogy mert nem jo....
5

onclick

bendesoft · 2010. Már. 31. (Sze), 13.55
A hiba az onclick-nél van. Amikor rákattintasz a gombra akkor az űrlap még nem lett elküldve, így nem is létezhet a $_POST["tantargyx"] változó. Második alkalommal már létezni fog, és azért működik jól.
6

Es hogyan tudnam azt

954rr · 2010. Már. 31. (Sze), 14.17
Es hogyan tudnam azt megoldani hogy ne kelljen ketszer kattintanom a Valaszt gombra hogy az legyen az erteke amit eloszor kivalasztok?
7

ami az onclick eseményhez van

bendesoft · 2010. Már. 31. (Sze), 14.21
ami az onclick eseményhez van irva azt vedd ki onnan és rakd a tárgyválasztó kombóbox elé
8

Kitoroltem az onclick-et a

954rr · 2010. Már. 31. (Sze), 14.27
Kitoroltem az onclick-et a button tulajdonsagaitol es tartalmat athelyeztem a select lista ele, de meg mindig ugyan azt csinalja....
9

Ugy nez ki

954rr · 2010. Már. 31. (Sze), 14.36
Ugy nez ki megoldva...koszonom a segitseget!
10

Valahogy így

bendesoft · 2010. Már. 31. (Sze), 14.41
Valahogy így próbáld:

<td>Tantargy<br /></td>  
<td>  
<?  
	$sqll = "SELECT tantargy.id,tantargy.tantargykod FROM tantargy,diakreghez WHERE tantargy.id=diakreghez.tantargy_id GROUP BY tantargy.id";  
	$sqlleredmeny = mysql_query($sqll);  
?>  
<select name="tantargyx">  
<?  
	
	while ($tantargykod = mysql_fetch_array($sqlleredmeny)) {  
		$selected = "";
		if(isset($_POST["tantargyx"]) && $_POST["tantargyx"] == $tantargykod[id]){
			$selected = " selected";
		}
		echo "<option value='$tantargykod[id]'$selected>$tantargykod[tantargykod]</option>";
	}
?>  
</select>  
</td>  
<td><input type="submit" value="Valaszt"></td>