ugrás a tartalomhoz

Kereső, frissítés után eltűnik az adat

handycam14 · 2014. Jan. 30. (Cs), 23.49
Sziasztok!
Az lenne a problémám, hogy akarok keresni select mezővel, egy adott tulajdunságú elemekre. Ezt szépen lekérdezi, és megjeleníti, csak ha ráfrissítek az oldalra akkor eltűnik. Probalgattam session-el eltarolni , de az se ment.
Form:
  1. <form method="post" action="">  
  2.     <select name="akcio">  
  3.      <option value="1">Akció</option>  
  4.      <option value="0" >Nem akciós</option>  
  5.      <option value="%" selected="selected">Mindekttő</option>  
  6.     </select>  
  7.     <br />  
  8.     <input type="submit" name="send" value="Keres" />  
  9.    </form>  
PHP kód:
  1. if(isset($_POST["send"]) || isset($_SESSION["akc"])) {        
  2.                     session_start();    
  3.                     if(!emptyempty($_POST["akcio"])) {  
  4.                             $_SESSION["akc"]=$_POST["akcio"];  
  5.                        }  
  6.                      if(isset($_SESSION["akc"])) {  
  7.                 $query = "select id,name,brand,sale,price,image from product WHERE sale LIKE '$_SESSION[akc]'";    
Tudom, nincs rajta biztonsag, de most csak gyakoroltam. Köszi előre is!
+
Frissítés után a kiválasztott option is eltűnik, vagyis pl: ha kiválasztom az "Akció" option-t, és rányomok a submit-ra, akkor szépen kilistázza az akciós terméket, de visszaugrik a "Mindkettőre". Azt hogy lehetne hogy az is látszodjon amit kiválasztok?
 
1

a form-odban az option-höz a

szabo.b.gabor · 2014. Jan. 31. (P), 00.35
a form-odban az option-höz a selected-et aszerint teszed ki, hogy mi van kiválasztva.

tehát pl
  1. <?php  
  2. $lehetosegek = array(  
  3.     1 => 'Akciós',  
  4.     2 => 'Nem akciós',  
  5.     '' => 'Mindkettő'  
  6. );  
  7.   
  8. $selected = isset($_GET['akcio']) ? $_GET['akcio']:'';  
  9.   
  10. ?>  
  11.   
  12. <select name="akcio">  
  13.     <?php foreach($lehetosegek as $value => $label): ?>  
  14.         <option value="<?= $value ?>"<?= $value == $selected?' selected':'' ?>>  
  15.             <?= $label ?>  
  16.         </option>  
  17.     <?php endforeach; ?>  
  18. </select>  
direkt írtam $_GET-et. ez egy szűrés, az jelenjen meg az url-ben, el tudod küldeni a havernak is. egy post-ot nehezebb..

ezt a % jel és LIKE dolgot nagyon gyorsan felejtsd el. pl akkor jelenjen meg a where feltétel a query-ben ha van szűrés és jónapot.

ja, és a session is nagyon felejtős ilyen esetekre. mi van ha van két oldalad megnyitva más szűréssel? session azt tárolja, hogy be van-e lépve jóska, vagy nincs. kicsit persze lesarkítva a dolgokat.
2

kicsig meg homalyos a kodod

handycam14 · 2014. Jan. 31. (P), 14.07
kicsig meg homalyos a kodod nekem, de megprobalom majd ertelmezni. Egyebkent az utolso elotti bekezdest mire ertetted? Csak ennel a script-nel ne hasznaljak, LIKE+% kombinaciot, vagy egyaltalan ne?
3

az akció meződben gondolom

szabo.b.gabor · 2014. Jan. 31. (P), 14.45
az akció meződben gondolom lehet 0, meg 1 mint érték.

a lenyílód értékkészlete pedig 0,1,%

és amit kapsz azt átnyomod a like feltételed paraméterének.

értem én, hogy működik a dolog, de ez annyira de annyira csúnya, hogy nagyon.

persze használj nyugodtan bármikor LIKE-ot és % jelet a lekérdezéseidben, ha arra van szükség, de ez nem az az eset.

foreach(): es endforeach; az ugyanaz mint egy foreach(){}
<?= ?> az ugyanaz mint <?php echo ?>

feltetel ? ez fut le ha igaz : ez ha hamis

tehat a foreach az egyértelmű kell legyen
  1. <?= $value == $selected?' selected':'' ?>  
  2.   
  3. ez pedig kb annyit jelent, hogy  
  4.   
  5. <?php  
  6. if($value == $selected){  
  7.     echo ' selected';  
  8. }else{  
  9.     echo '';  
  10. }  
  11. ?>  
4

Igy mar ertem:)Bemasoltam a

handycam14 · 2014. Feb. 1. (Szo), 01.32
Igy mar ertem:)
Bemasoltam a kododat , de valamiert csak ">" jeleket dob ki a listaba, nem az "akcios","nem akcios" szoveget:/
5

Hibakeresés

Hidvégi Gábor · 2014. Feb. 1. (Szo), 10.08
6

Koszi, elkezdem olvasgatni!

handycam14 · 2014. Feb. 1. (Szo), 22.35
Koszi, elkezdem olvasgatni!