ugrás a tartalomhoz

PHP-MYSQL-select option

954rr · 2010. Már. 31. (Sze), 00.03
Sziasztok!
A kód:
  1. <td>Tantargy<br /></td>  
  2.     <td>  
  3.             <?  
  4.         $sqll = "SELECT tantargy.id,tantargy.tantargykod FROM tantargy,felvett_tantargy WHERE tantargy.id=felvett_tantargy.tantargy_id GROUP BY tantargy_id";  
  5.         $sqlleredmeny = mysql_query($sqll);  
  6.               
  7.         $i=0;  
  8.         while ($tantargykod = mysql_fetch_array($sqlleredmeny)) {  
  9.             $tanid["$i"] = $tantargykod['id'];  
  10.             $tan["$i"] = $tantargykod['tantargykod'];  
  11.             $i++;  
  12.         }  
  13.         ?>  
  14.         <select name="tantargyx[]">  
  15.         <?  
  16.             for ($i=0; $i<mysql_num_rows($sqlleredmeny); $i++) {  
  17.             echo ?><option value="<?=$tanid["$i"]?>"><?=$tan["$i"]?></option>;  
  18.             <?}?>  
  19.   
  20.             </select>  
  21.     </td>  
  22.     <td><input type="submit" value="Valaszt" OnClick="<?  
  23.                       
  24.     if (isset($tantargyx)) {              
  25.         foreach ($tantargyx as $felvx) {  
  26.         $felvtanx = $felvx;  
  27.         $_SESSION['bejeltant'] = $felvtanx;  
  28.         }  
  29.     }  
  30.     ?>"></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?
  1. <td>Tantargy<br /></td>  
  2.   
  3.                 <td>  
  4.                 <?  
  5.                 $sqll = "SELECT tantargy.id,tantargy.tantargykod FROM tantargy,diakreghez WHERE tantargy.id=diakreghez.tantargy_id GROUP BY tantargy.id";  
  6.                 $sqlleredmeny = mysql_query($sqll);  
  7.               
  8.                 $i=0;  
  9.                 while ($tantargykod = mysql_fetch_array($sqlleredmeny)) {  
  10.                 $tanid["$i"] = $tantargykod['id'];  
  11.                 $tan["$i"] = $tantargykod['tantargykod'];  
  12.                 $i++;  
  13.                 }  
  14.                 if (isset($_SESSION['felvtanr'])) {$idellen = $_SESSION['felvtanr'];}  
  15.                 ?>  
  16.                 <select name="tantargyx[]">  
  17.                 <?  
  18.                 for ($i=0; $i<mysql_num_rows($sqlleredmeny); $i++) {  
  19.                 echo ?><option value="<?=$tanid["$i"]?><?if ($idellen=$tanid["$i"]){echo "selected";}else{}?>><?=$tan["$i"]?></option>;  
  20.                 <?}?>  
  21.   
  22.                 </select>  
  23.                 </td>  
  24.   
  25.                 <td><input type="submit" value="Valaszt" OnClick="<?  
  26.                       
  27.                 if (isset($tantargyx)) {              
  28.                 foreach ($tantargyx as $felvx) {  
  29.                 $felvtanx = $felvx;  
  30.                 $_SESSION['felvtanr'] = $felvtanx;  
  31.                 }  
  32.                 }  
  33.                 ?>"></td>  
3

<?if

bendesoft · 2010. Már. 31. (Sze), 12.29
  1. <?if ($idellen=$tanid["$i"]){echo "selected";}else{}?>>  
helyett, talán inkább:
  1. <?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:
  1. <td>Tantargy<br /></td>    
  2. <td>    
  3. <?    
  4.     $sqll = "SELECT tantargy.id,tantargy.tantargykod FROM tantargy,diakreghez WHERE tantargy.id=diakreghez.tantargy_id GROUP BY tantargy.id";    
  5.     $sqlleredmeny = mysql_query($sqll);    
  6. ?>    
  7. <select name="tantargyx">    
  8. <?    
  9.       
  10.     while ($tantargykod = mysql_fetch_array($sqlleredmeny)) {    
  11.         $selected = "";  
  12.         if(isset($_POST["tantargyx"]) && $_POST["tantargyx"] == $tantargykod[id]){  
  13.             $selected = " selected";  
  14.         }  
  15.         echo "<option value='$tantargykod[id]'$selected>$tantargykod[tantargykod]</option>";  
  16.     }  
  17. ?>    
  18. </select>    
  19. </td>    
  20. <td><input type="submit" value="Valaszt"></td>