Diskuze: Vrácení výsledku na stránku
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 19 zpráv z 19.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
A jaký je tvůj dotaz? Že se skript spustí jen když zadáš jeho adresu je snad logické.
A co v těch souborech máš? Dotaz jsi položil dost nešikovně. Pokud chceš načíst něco ze souboru, použij require nebo include.
Máš tam podmínku
if (isset($_GET["id"]))...
Pokud nezadáš parametr "id", tak podmínka není splněna. Proto se nic nezobrazí.
EDIT: Aha, ty to myslíš jinak. To by fungovat mělo. Zkusím to otestovat.
Môžeš na to použiť Ajax, pomocou JQuery kňižnice to bude jednoduché .. Po kliknutí na link sa odošle žiadosť na php script spolu s tvojími dátami (id)a samotný php script sa postará o databázové informácie ktoré odovzdá napríklad v JSON formáte.
Mám index.php, pomocí GET mám vytvořené menu. Pokud tedy napíšu
index.php?stranka=reference dostanu se do referencí.
V referencích mám reference seřazené v levém sloupci. Pokud kliknu na
některou z vypsaných referencí, chci aby se mi z datábáze vypsali údaje o
ní. Reference je odkaz ve formě:
<a href="...?id=1">
ID 1 je v datábázi přiřazené. A potřebuji, aby se z datábáze stáhly další soubory.
Pokud odkaz reference vede na další stranu(odkaz ve tvaru:
<a href="stavby.php?id=1">
) tak se vše načte a je to v pořádku. Já bych ale potřeboval, aby se tyto údaje načetly do pravého sloupce. Když dám odkaz ve tvaru :
<a href="?id=1">
, tak se nic nestane(to je logické, protože se nenačte stránka. Pokud ale stránku načtu i s tímto parametrem, stejně se nic nenačte. Dokonce se dostanu na homepage. V adresním řádku mi ale zůstane celá adresa (index.php?stranka=reference?id=1).
Snad už to bude lépe pochopitelné. Pokud se php načítá v dalším souboru je funkční, pokud mám vše v jednom, nic se nestane.
Děkuji
Udělal jsem si malý pokus. Oba odkazy mi normálně fungují.
<?php
$id = 0;
if (isset($_GET["id"])) {
$id = $_GET["id"];
}
echo <<<EOT
<h1>id = $id</h1>
<a href="stavby.php?id=20">GET ID 20</a>
<a href="?id=42">GET ID 42</a>
EOT;
Problém asi bude jinde.
Je také dobré $_GET["id"] převést na integer, jinak tě někdo může nepříjemně překvapit.
index.php?stranka=reference?id=1
je chybně, správně je URL
index.php?stranka=reference&id=1
a po zvalidování
index.php?stranka=reference&id=1
Oprav si to.
Mohu se zeptat, co znamená to <<<EOT? zběžně jsem to teď projel
Googlem a nejsem z toho moc moudrej
Díky
EDIT: Aha, takže v tom byl problém. Pokud zadám & tak již vše běží. Moc děkuju!!
To je označení začátku šablony. Jmenuje se to Heredoc.
Je to lepší a praktičtější než Smarty.
Ještě se zeptám, jak by jsi skladoval obrázky do databáze? Potřebuji,
aby se u id=1 zobrazily fotky. Četl jsem, že se přímo fotky nedoporučují a
že je dobré pouze psát odkazy na fotky.
Jak by jsi to provedl ty?
Děkuji
Fotky se nejčastěji ukládají do samostatného adresáře. Do databáze se pak uloží název fotky, odkaz na soubor na disku, popis fotky, seznam osob na fotce, místo focení a vygenerovaný náhled (miniatura). Miniatura a popisky se generují při ukládání obrázku.
Díky, kouknu na to a zkusím na to přijít ... Když tak sem zítra zase
napíšu
jenze prez tu mou podminku se nebude vykonavat sql dotaz kdyz pretypujes get[id] na int tak to stejne polozi dotaz ne? pokud to chapu spravne .:) jen se ptam:)
Je to ještě zapouzdřeno do podmínky
isset($_GET["id"])
takže pokud id není vyplněno, nebude splněna a může se udělat jiný typ dotazu.
To přetypování je tam nutné kvůli SQL injection.
Zobrazeno 19 zpráv z 19.