On click a proměnná – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

On click a proměnná – PHP – Fórum – Programujte.comOn click a proměnná – PHP – Fórum – Programujte.com

 

Jarda
~ Anonymní uživatel
199 příspěvků
25. 11. 2014   #1
-
0
-

Ahoj potřebuju poradit.

Je to galerie, kde se mi načítají malé obrázky pomocí while, a já potřebuju aby po kliknutí na určitej obrázek mi to odeslalo formulář (to už mám), ale aby to ještě do formuláře přidalo název oobrázku, takže potřebuju něco takového<img src='.$slozka_souboru_jmeno."/".$soubor.' onclick="form.submit()" onclick="form.fotka.$soubor">a to form.fotka.$soubor by sse poslalo do value jsemecho '<input type="hidden" name="fotka" value="">';

bohužel, tento tag onclick="form.fotka.$soubor" nejde.

Nahlásit jako SPAM
IP: 77.237.138.–
Jarda
~ Anonymní uživatel
199 příspěvků
26. 11. 2014   #2
-
0
-

#1 Jarda
Tak jsem to nějak splácal, akorát po kliknutí na obrázek se nic neděje. pokud dám pryč document.form.fotka.value='.Soubor.', tak to reaguje a přesměruje mě to na formullář ale já potřebuju posílat i to druhé
 echo '<img src='.$slozka_souboru_jmeno."/".$soubor.' onclick="form.submit(); document.form.fotka.value = '.$soubor.'" style="border: 2px solid #FFFFFF;" height="115" width="153">';
}
    echo '<form id="form" action="index.php?strana=galerie_foto" method="post">';
    echo '<input type="hidden" name="sent" value="">';
    echo '<input type="hidden" name="slozka" value='.$slozka_souboru_jmeno.' value="">';
    echo '<input type="hidden" name="fotka" value="">';
    echo '</form>';

Nahlásit jako SPAM
IP: 77.237.138.–
Matěj Andrle+1
Grafoman
26. 11. 2014   #3
-
0
-

#2 Jarda
Fuj - používej link - třeba i s target. (třeba target iframe - a iframe nastyluj jako DHTML) Do linku jen cpi QueryString.

Nahlásit jako SPAM
IP: 78.136.148.–
peter
~ Anonymní uživatel
3981 příspěvků
26. 11. 2014   #4
-
0
-

Tak, html ma takzvane submit image button, ze? Tusim, ze input type=image (html).
Pak je tu moznost klasicky odkaz (html).
A kdyz tedy selze to ci ono, tak bych pouzil tedy javascript (js).
Nicmene se ptas ve forku php, kam takovy dotaz nepatri. Na to tady jsou jina forka.

U onclick bych pouzil  onclick=funkce(this). Ve funkci to pak zpracujes jako
funkce (prom) {
var form = prom.form;
var img = prom;
alert(img.title); // treba
alert(img.src); // treba
form.fotka.value = this.src;
form.submit();
}
A kdyz uz to mas takhle, tak tu js udalost muzes hromadne pridat javascriptem a tudiz se nemusi vypisovat pres php.
Mimochodem, echo pouzivat hned je dost opruz. Vetsina serveru se chova tak, ze na echo odesle obsah. Takze pri tabulce o 3000 radcich pak zblokujes server treba 5 minut nez ti to radek po radku posle a ten datovy tok ma na kazdy radek 1k hlavicku html.

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:ac94:8a...–
Jarda
~ Anonymní uživatel
199 příspěvků
26. 11. 2014   #5
-
0
-

#4 peter
Vyřešeno zvolil jsem cestu odkazu

<a rel="nofollow" href="index.php?strana=galerie_foto&fotka='.$soubor.'" style="text-decoration: none;">

Nahlásit jako SPAM
IP: 77.237.138.–
Matěj Andrle+1
Grafoman
26. 11. 2014   #6
-
0
-

A prý, že radím blbě! :D

BTW: Jardo - označ to za vyřešené, či přímo příspěvek s řešením...

Nahlásit jako SPAM
IP: 78.136.161.–
Jarda
~ Anonymní uživatel
199 příspěvků
26. 11. 2014   #7
-
0
-

#6 Matěj Andrle
Díkyy oboum, ještě bych potřeboval jednu věc jsem $fotka=$_GET['fotka']; posílám názvy 1.jpg nebo 1.JPG nebo i 1.png a já potřebuju odělit název a příponu, které pak uložim do poměné $nazev $přípona

Jak na to? Díky.

Nahlásit jako SPAM
IP: 77.237.138.–
Matěj Andrle+1
Grafoman
26. 11. 2014   #8
-
0
-

#7 Jarda
www.google.cz:

php+pathinfo

Nahlásit jako SPAM
IP: 78.136.161.–
Jarda
~ Anonymní uživatel
199 příspěvků
26. 11. 2014   #9
-
0
-

#8 Matěj Andrle
to je přímo z adresáře, alejá už to právě potřebuju rozdělit až po posláání celého názvu.

Chci to protože tam chci dát další a předchozí, takže si potom rozdělim název apříponu. přičtu nebo odčtu 1 a k výsledku přiřadim zpět příponu

Nahlásit jako SPAM
IP: 77.237.138.–
Matěj Andrle+1
Grafoman
26. 11. 2014   #10
-
0
-

#9 Jarda
Bože - pošleš si celý název do PHP a v tom PHP to rozdělíš - jak to jsem ti poslal... Ještě lepší by bylo vykašlat se na tyto kraviny a vysvětlit proč tak činíš. Určitě to půjde lépe!

Nahlásit jako SPAM
IP: 78.136.161.–
Jarda
~ Anonymní uživatel
199 příspěvků
26. 11. 2014   #11
-
0
-

#10 Matěj Andrle
Dobře, tak se hned nerozčiluj. Je to galerie, kde se mi v souboru galerie.php načtou z adresáře fotky do menších čtverečků, když na jeden kliknu pošle se mi název obrázku do galerie_foto.php a ten mi je zobrazí vetší a já bych pod to chtěl ještě předchozí a další. Teď to mam takto

galerie.php

  <?php
$slozka_souboru_jmeno = "galerie";
$dir = dir($slozka_souboru_jmeno);
while ($soubor = $dir->read()) {
    if ($soubor == "." || $soubor == "..") continue;
    echo '<a href="index.php?strana=galerie_foto&fotka='.$soubor.'" style="text-decoration: none;"><img src='.$slozka_souboru_jmeno."/".$soubor.' style="border: 2px solid #FFFFFF;" height="115" width="153">&nbsp;</a>';
}
?>

galerie_foto.php

  <?php

  if(isset($_GET['fotka'])){    
    $slozka="galerie";
    $fotka=$_GET['fotka'];
 echo '<img src='.$slozka."/".$fotka.' style="border: 2px solid #FFFFFF;" height="300" width="300"><br>'; 
  }else{
    echo "Něco je špatně.";
  }
?>

Nahlásit jako SPAM
IP: 77.237.138.–
Jarda
~ Anonymní uživatel
199 příspěvků
26. 11. 2014   #12
-
0
-

#11 Jarda
Jo a k tomu další stačí přičítat jen +1 nebo u předchozí odečíst 1. Fotky mam pojmenované od 1 postupně vzhuru

Nahlásit jako SPAM
IP: 77.237.138.–
Matěj Andrle+1
Grafoman
26. 11. 2014   #13
-
0
-

#12 Jarda
Takže prasárna největší... :D Vytvoř normálně next.php a prev.php. Pošleš tam ID fotky - ne název! A ono to inkriminuje, či dekrementuje toto číslo. V databázi pak vyhledáš cestu, či přímo ten obrázek podle ID! Rozhodně ne tvým způsobem. Buď do DB tedy ukládej cesty pod AI ID, či manuálním ID, anebo přímo obrázky. Nikdy neposílej názvy fotek a další kraviny - jen čísla...

BTW: AI je auto-incrimine - automatická inkriminace - navýšení o 1. A z databáze tedy tahej cestu/fotku + ID. ID bych předával v JSON do JS.

Nahlásit jako SPAM
IP: 78.136.161.–
Jarda
~ Anonymní uživatel
199 příspěvků
26. 11. 2014   #14
-
0
-

#13 Matěj Andrle
já ale DB nepoužívám je to připojený pouze přes FTP čte to z toho

Nahlásit jako SPAM
IP: 77.237.138.–
Matěj Andrle+1
Grafoman
26. 11. 2014   #15
-
0
-

#14 Jarda
Ale DB používat máš - to je to! Netvrď mi, že je lepší vázat se na název fotky, který můžeš chtít změnit atd. Měj normálně DB s cestami - tak můžeš mít fotky kdekoliv a mohou se jakkoliv jmenovat... Stačí vždy jen upravit záznam pod daným ID. Jak jsem psal - pracuj jen s čísly. Vyřeší to strašně moc problémů a celé to pak bude hezčí. Vem si, že máš kilometrový název se špatnými znaky, že chceš přesunout fotku dynamicky atd. Pomocná databáze může být klidně jen textový soubor, ale rozhodně se to vyplatí!

Nahlásit jako SPAM
IP: 78.136.161.–
Jarda
~ Anonymní uživatel
199 příspěvků
26. 11. 2014   #16
-
0
-

#15 Matěj Andrle
To už je na mě moc složité. Kašlu na to, ale díky. 

Nahlásit jako SPAM
IP: 77.237.138.–
Jarda
~ Anonymní uživatel
199 příspěvků
26. 11. 2014   #17
-
0
-

Vyřešeno. možná ne nejlepším způsobem, ale mě to stačí. LOCK

  <?php

  if(isset($_GET['fotka'])){    
    $slozka = "galerie";
    $fotka = $_GET['fotka'];
    $nazev = strtolower(substr($fotka,0,strrpos($fotka,'.')));
    $pripona = strtolower(substr($fotka,strrpos($fotka,'.') + 0));
    $dalsi = $nazev+1;
 echo '<img src='.$slozka."/".$fotka.' style="border: 2px solid #FFFFFF;" height="300" width="300"><br>';
 echo '<a href="index.php?strana=galerie_foto&fotka='.$dalsi.$pripona.'" style="text-decoration: none;">Další</a>';
  }else{
    echo "Něco je špatně.";
  }
?>
Nahlásit jako SPAM
IP: 77.237.138.–
peter
~ Anonymní uživatel
3981 příspěvků
28. 11. 2014   #18
-
0
-

A co kdyz v nazvu bude tecek vic? Nebo nebude zadna? A co kdyz pripona nebude jen 3 znaky? :)
"ahoj.nazdar.ja.jsem.pripona", "..", ".", "jajsembeztecky", ".htaccess", "word.doc", "word.docx"
Ja bych si ulozil pozici posledni tecky a delil to pak podle ni substr/substring. A pred delenim jeste zkontroloval, zda strrpos nevratil ===false nebo -1, pak bych mu nastavil pozici posledniho znaku str_len(). A pak mozna jeste zkontrolovat, zda nazev neni prazdny nebo neni tecka (".."), pak bych opet dal pozici tecky az na konec, aby to cele povazoval za nazev (cili .htaccess soubor bude na zacatku).

 

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:ac26:cf...–
Marek Šloser
~ Anonymní uživatel
9 příspěvků
30. 11. 2014   #19
-
0
-

Když budeš potřebovat napiš na info@mareksloser.cz mrknem na to.

Nahlásit jako SPAM
IP: 80.188.28.–
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, 7 hostů

Podobná vlákna

PictureBox.click; — založil Kubas129

Click listener — založil Petr123

Function click — založil zelenac1

Auto click onload — založil Franceq

 

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