Permalänk
Medlem

Enkel fråga, PHP!

Hallå! Jag är helt ny till PHP, och jag har stött på ett problem. Just nu ser min kod ut såhär:

<html> <head> <title>Vi provar lite PHP</title> </head> <body> <?php $total = "3"; $file_type = ".jpg"; $image_folder = "images"; $start = "1"; $random = mt_rand($start, $total); $image_name = $random . $file_type; echo "<a href=\"index.php\"><img src=\"$image_folder/$image_name\" alt=\"$image_name\" /></a>"; ?> </body> </html>

Som ni ser, så är det som händer är att en random bild laddas in, sedan när man trycker på den laddas en ny in. Men det jag undrar är, hur ska jag gå tillväga för att kunna ändra en variabel's värde när jag trycker på bilden?

Tack på förhand!

Permalänk
Medlem

PHP körs innan sidan laddas, så det finns ingen chans att ändra på värdet när man trycker på bilden. Vill du ha innehåll som ändrar på sig beroende på vart man trycker, så kolla på AJAX. Har själv ingen erfarenhet av det dock.

Visa signatur

Citera eller nämn gärna mig (@ToJa92) om du svarar på något jag skrivit.
Uppskattar du eller blir hjälpt av ett inlägg jag skrivit är jag tacksam om du gillar det.

Permalänk
Medlem

Du kan tex göra bilden till en länk och skicka med nya variabel värdet och sedan hämta det med GET. Skriver på mobilen nu så kan tyvärr inte skriva nån kod.

Permalänk
Medlem

Ah, pratar med en kille som berättade för mig om GET metoden. Tack för hjälpen iaf!

Permalänk
Medlem
Skrivet av ToJa92:

PHP körs innan sidan laddas, så det finns ingen chans att ändra på värdet när man trycker på bilden. Vill du ha innehåll som ändrar på sig beroende på vart man trycker, så kolla på AJAX. Har själv ingen erfarenhet av det dock.

Fel, eftersom sidan laddas om när du trycker på bilden. Precis som nämndes tidigare är det GET som bör användas.

Permalänk
Medlem

Om du kör AJAX (jQuery förenklar det) så borde du kunna fixa det utan att ladda om sidan.

Permalänk
Medlem

Snubben är helt ny på php/koda och ni börjar redan blanda in js/ajax/jquey för att slippa ladda om sidan?
Nä, testa använda get-variablen till en början skulle jag säga.

Permalänk
Medlem
Skrivet av Tazavoo:

Fel, eftersom sidan laddas om när du trycker på bilden. Precis som nämndes tidigare är det GET som bör användas.

Ja, fast då måste ju PHP-koden köras igen. Efter att PHP kört igenom koden kan du ju inte ändra den eller dess variabler, såvida du inte låter PHP köra den igen. Så med GET måste du ju ladda om skriptet, precis som du påpekar.

Visa signatur

Citera eller nämn gärna mig (@ToJa92) om du svarar på något jag skrivit.
Uppskattar du eller blir hjälpt av ett inlägg jag skrivit är jag tacksam om du gillar det.

Permalänk
Medlem

Istället för att fortsätta spåra ur tråden så bygger jag vidare din kod lite så att du ser till att slumpa en bild när du laddar om sidan, men inte samma som du laddade senast.

<html> <head> <title>Vi provar lite PHP</title> </head> <body> <?php $total = "3"; $file_type = ".jpg"; $image_folder = "images"; $start = "1"; $random = mt_rand($start, $total); $image_name = $random . $file_type; // p = previous, förkortad för att göra url-en lite snyggare. // En get-variabel är en variabel som skickas genom urlen, typ www.domän.com/sida.php?getvariabel=2 // Då kan du komma åt $_GET["getvariabel"] som har värdet 2 // Du kan ha flera get-variabler genom att separera med &, ex. /sida.php?var=222&foo=3 // Tanken är att om du aldrig besökt sidan tidigare så är inte nödvändigtvis // variabeln satt till någon bild, Då ignorerar vi loopen helt. // Annars genererar vi ett nytt random-tal som inte är lika med p. if(isset($_GET["p"])){ while($random !== $_GET["p"]){ $random = mt_rand($start, $total); } } echo "<a href=\"index.php?p=$random\"><img src=\"$image_folder/$image_name\" alt=\"$image_name\" /></a>"; ?> </body> </html>

Om du bara vill ha värdet i en variabel skickad genom get så kan du köra:

$minvariabel = $_GET["variabel"];

Glöm dock inte att om det inte skickas med en get-variabel som ser ut som du vill, eller att det inte finns någon alls, så kan du kanske bryta din kod och få fula meddelanden, eller värre, förstöra något på serversidan. Se till att alltid dubbelkolla så att variabeln har rätt typ av värde och att det finns något sätt att hantera alla undantag.

Visa signatur

Cat funeral! Cat funeral!
>>> 112383 <<<