Problém s prvním načtením – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Problém s prvním načtením – PHP – Fórum – Programujte.comProblém s prvním načtením – PHP – Fórum – Programujte.com

 

Spector
~ Anonymní uživatel
4 příspěvky
2. 8. 2012   #1
-
0
-

Zdravím. Mám problém s provedením MySQL dotazu při prvním spuštění stránky. Mám form (třídění - cena od: cena do:), po jeho submitnutí se znovu načte stejná stránka všechno už funguje. Já ale potřebuju, aby dotaz fungoval i při před prvním submitnutím. Tohle je můj kód (není to finální verze, takže je to "trochu" prasečinka): 

<?php
session_start();

  if ($_POST['order'] != ""){
    $_SESSION['order'] = $_POST['order'];
    $_SESSION['cenamin'] = $_POST['cenamin'];
    $_SESSION['cenamax'] = $_POST['cenamax'];
  }
  else{
    $order = "id";
  }

 
  echo "<form action=\"/kategorie/".$_GET['subpage']."\" method=\"post\" >
  <table style='border-collapse: collapse' align='center'>
  <tr>
  <td><b>Řadit podle: </b></td>
  </tr>
  <tr style='background-color: #e4e8cb'>
  <td width='324px'>";
  echo "<select style='float: left' name=\"order\" onchange='testValue(this);'>";
      echo "<option value=\"price\" >ceny vzestupně</option>";
      echo "<option value=\"name\" >názvu vzestupně</option>";
      echo "<option value=\"id\" >data přidání vzestupně</option>";
      echo "<option value=\"price DESC\" >ceny sestupně</option>";
      echo "<option value=\"name DESC\" >názvu sestupně</option>";
      echo "<option value=\"id DESC\" >data přidání sestupně</option>";
  echo "</select><br>";
  echo "</td>
  <td>";
  echo "
  cena od: <input type=\"text\" name=\"cenamin\" value=\"".$_SESSION['cenamin']."\" size='8' />
  cena do: <input type=\"text\" name=\"cenamax\" value=\"".$_SESSION['cenamax']."\" size='8'  />
  <input type=\"submit\" value=\"Filtrovat\" />";
  echo "</td>
  </tr>
  </table>
  </form><br>";
 
   /* mezi tímhle je kód pro stránkování, proto potom proměnný jako $limit_down nebo PAGING, ten je v pohodě */


    $order = $_SESSION['order'];
    $min = $_SESSION['cenamin'];
    $max = $_SESSION['cenamax'];

    if($_SESSION['cenamax'] == NULL) {
      $goodsList = Goods::ZeroGetGoodsListPerCatLimit($_GET['subpage'], $order, $limit_down, PAGING);
    }
    else{
      $goodsList = Goods::GetGoodsListPerCatLimit($_GET['subpage'], $order, $min, $max, $limit_down, PAGING);
    }...

Beru každou radu. Pokud by se to podařilo vyřešit, byl bych vám strašně vděčnej.

Nahlásit jako SPAM
IP: 82.114.209.–
crazy
~ Moderátor
+10
Grafoman
2. 8. 2012   #2
-
0
-

#1 Spector
budeš muset použít AJAX

Nahlásit jako SPAM
IP: 90.179.155.–
All you need is vision and time.
Spector
~ Anonymní uživatel
4 příspěvky
2. 8. 2012   #3
-
0
-

#2 crazy
No toho jsem se bál. Opravdu není nějaká šance se AJAXu přece jen vyhnout? Bohužel si AJAX a já zrovna netykáme  

Nahlásit jako SPAM
IP: 82.114.209.–
CZechBoY+4
Věrný člen
3. 8. 2012   #4
-
0
-

#3 Spector
použij ajax v jQuery, to je pohodička :)

dáš jen $('#content').load(url); a hotovo :)

Nahlásit jako SPAM
IP: 213.192.10.–
zlz
~ Anonymní uživatel
634 příspěvků
3. 8. 2012   #5
-
+1
-
Zajímavé

Na inicializaci proměnných se dneska používá AJAX ?  

session_start();
//>>>
if (!isset($_SESSION['order'])){
  $_SESSION['order'] = "id";
  $_SESSION['cenamin'] = 0;
  $_SESSION['cenamax'] = NULL;
}
//<<<
if ($_POST['order'] != ""){
  $_SESSION['order'] = $_POST['order'];
  $_SESSION['cenamin'] = $_POST['cenamin'];
  $_SESSION['cenamax'] = $_POST['cenamax'];
}

echo ...
Nahlásit jako SPAM
IP: 80.188.216.–
Spector
~ Anonymní uživatel
4 příspěvky
3. 8. 2012   #6
-
0
-

#5 zlz
Díky vám všem. Na AJAX se určitě podívám, ale jak píše zlz, na tohle teda nebyl potřeba    Použít 2 podmínky místo jedné s else mě nenapadlo... Díky zlz a já se jdu stydět někde do kouta.

Nahlásit jako SPAM
IP: 82.114.209.–
zlz
~ Anonymní uživatel
634 příspěvků
3. 8. 2012   #7
-
0
-

#6 Spector
Klidně tam můžeš mít jeden if-else (akorát to bude fungovat trochu jinak a asi ne tak jak chceš), jde jen o to, že používáš proměnné, které nastavuješ jen/až při tom postu a do té doby nejsou inicializované.

Nahlásit jako SPAM
IP: 80.188.216.–
Spector
~ Anonymní uživatel
4 příspěvky
3. 8. 2012   #8
-
0
-

#7 zlz
No, je fakt, že tady v tomhle skriptu to není (z bůh ví jakýho důvodu), ale v tom, co jsem používal, jsem inicializoval i cenamin/max v else. Bezúspěšně.

Nahlásit jako SPAM
IP: 78.80.90.–
null_while
~ Moderátor
+6
Věrný člen
9. 8. 2012   #9
-
0
-

#1 Spector
Příště dej prosím kód do viditelné syntaxe. Je na to nástroj v editoru příspěvku - díky.

Nahlásit jako SPAM
IP: 84.16.103.–
WEBNIA.cz - tvorba webových stránek
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý