Få ut innehållet i en div till en PHP variabel

Permalänk
Medlem

Få ut innehållet i en div till en PHP variabel

Hej!

Jag håller på och jobbar lite med AJAX och kör då en skript som går in i en fil, plockar med sig ett värde som sedan skrivs ut inuti en div. Detta skript körs varje sekund då den arbetar med en bilduppladdare som laddar upp flera bilder samtidigt. Meningen med detta är då att skriptet skriver ut bilderna i diven allt eftersom bilderna laddas upp.

Men nu är det så att jag på något sätt vill ha över innehållet i diven till en PHP variabel. Eftersom variabel hamnar i javascriptet så går det inte att få över variabeln till PHP utan att uppdatera sidan, vilket inte ska hända.

Så jag sökte runt lite och kom fram till att php-funktionen preg_match kan användas till just det att få ut innehållet i en div. Men tyvärr så har jag inte lyckas konfigurera funktionen så att den kan fungera för mig.

Så nu vänder jag mig till er och hoppas att någon kan skriva en kodsnutt som kan fungera på min sida. Även om lösningen inte är preg_match så är den välkommen.

<div id="text"></div>

Detta är min div och innehållet i diven uppdateras varje gång en ny bild har laddats upp vilken kan hända varje sekund. Sidan får som sagt inte uppdateras eftersom då börjar skriptet och bilduppladdningen om igen.

Behöver ni mer av min kod är det bara att skriva så slänger jag upp det.

Tack på förhand!

Permalänk
Medlem

I detta sammanhang körs PHP på servern och javascript på klientdatorn. Efter att du har laddat klart sidan är PHP ute ur leken. Den har gjort sitt, omvandlat PHP-kod till HTML och lämnat över resultatet till besökaren.

Vad jag undrar är var du får dina bilder ifrån. Du kan ju inte läsa en fil på datorn så jag antar att du menar att du anropar servern med AJAX och att den returnerar en bild. Rätt lösning på problemet är att låta servern registrera varje gång en bild skickas.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

I detta sammanhang körs PHP på servern och javascript på klientdatorn. Efter att du har laddat klart sidan är PHP ute ur leken. Den har gjort sitt, omvandlat PHP-kod till HTML och lämnat över resultatet till besökaren.

Vad jag undrar är var du får dina bilder ifrån. Du kan ju inte läsa en fil på datorn så jag antar att du menar att du anropar servern med AJAX och att den returnerar en bild. Rätt lösning på problemet är att låta servern registrera varje gång en bild skickas.

Bilder laddar användaren upp själv via en flash uppladdare som kan ladda upp flera bilder samtidigt. När bilden laddas upp hamnar den även i en tabell och vad AJAX gör är att den skickar med det högsta id-nummret tabellen hade när sidan laddades och när en ny bild lagts in och fått ett högre id-nummer i tabellen så plockar AJAX med sig bilden och skriver ut den inuti "text".

Med hjälp av uppladdaren så känner den av när en bild laddats upp och jag kan få ut bildnamnet. Problemet är att jag byter namn på bilderna när de laddas upp vilket inte registreras av uppladdaren så jag får inte bildens nya namn och kan därför inte länka rätt. Men det nya namnen registreras inuti "text" och därför vill jag kunna plocka ut innehållet för att kunna använda vidare med rätt bildnamn.

Var det något sånt du undrade över?

Permalänk

Du kanske skulle kunna lagra en JSON-sträng i en session variabel ($_SESSION['variabel']) och hämta den varje gång skriptet för diven körs.
Klurigt att veta hur man ska göra utan att se din befintliga kod.

Permalänk
Medlem
Skrivet av Lullebulle:

Du kanske skulle kunna lagra en JSON-sträng i en session variabel ($_SESSION['variabel']) och hämta den varje gång skriptet för diven körs.
Klurigt att veta hur man ska göra utan att se din befintliga kod.

<script type="text/javascript"> function showHint() { if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET","getimg.php?q=<?php echo $id; ?>&t="+new Date().getTime(),true); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { if(document.getElementById("text").innerHTML != xmlhttp.responseText){ document.getElementById("text").innerHTML=xmlhttp.responseText; } } } xmlhttp.send(); setTimeout("showHint()", 1000); } </script>

<?php require_once 'uploader/class.FlashUploader.php'; IFU_display_js(); $uploader = new FlashUploader('uploader', 'uploader/uploader', 'http://minsida.se/upload.php'); $uploader->display(); ?>

Detta är mitt skript som körs varje sekund, och sen i body så finns php koden som kör själva uppladdaren, samt min div tagg. I getimg.php så hämtas de nya bilderna.

Permalänk
Medlem
Skrivet av kpg555:

Bilder laddar användaren upp själv via en flash uppladdare som kan ladda upp flera bilder samtidigt. När bilden laddas upp hamnar den även i en tabell och vad AJAX gör är att den skickar med det högsta id-nummret tabellen hade när sidan laddades och när en ny bild lagts in och fått ett högre id-nummer i tabellen så plockar AJAX med sig bilden och skriver ut den inuti "text".

Med hjälp av uppladdaren så känner den av när en bild laddats upp och jag kan få ut bildnamnet. Problemet är att jag byter namn på bilderna när de laddas upp vilket inte registreras av uppladdaren så jag får inte bildens nya namn och kan därför inte länka rätt. Men det nya namnen registreras inuti "text" och därför vill jag kunna plocka ut innehållet för att kunna använda vidare med rätt bildnamn.

Var det något sånt du undrade över?

Du kan inte ladda upp en bild utan att ha något som tar emot den. Vad är det för information du vill ha ut; alla bilder som laddats upp någonsin, alla bilder som laddats upp sen besökaren kom in på siten eller kanske något i stil med de senaste tio bilderna?

Det första och sista scenariot kan lösas med PHP genom att läsa vilka filer som ligger i uppladdningsfoldern.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

Du kan inte ladda upp en bild utan att ha något som tar emot den. Vad är det för information du vill ha ut; alla bilder som laddats upp någonsin, alla bilder som laddats upp sen besökaren kom in på siten eller kanske något i stil med de senaste tio bilderna?

Det första och sista scenariot kan lösas med PHP genom att läsa vilka filer som ligger i uppladdningsfoldern.

De nya bildnamnen för alla bilder som användaren laddar upp vid just det tillfället. Men det är så att bilderna ska dyka upp var för sig tillsammans med en textruta som användaren ska kunna skriva bildens titel i. Eftersom skriptet uppdaterar diven hela tiden så återställs även textrutorna så jag vill kunna lägga varje bild specifikt för sig efter de har laddats upp. Kom på att detta kunde varit bra att skriva från början... Ber om ursäkt för det.

Jag är inte den bästa på att förklara men jag hoppas du förstår någorlunda vad jag försöker genomföra?

Permalänk
Medlem
Skrivet av kpg555:

De nya bildnamnen för alla bilder som användaren laddar upp vid just det tillfället. Men det är så att bilderna ska dyka upp var för sig tillsammans med en textruta som användaren ska kunna skriva bildens titel i. Eftersom skriptet uppdaterar diven hela tiden så återställs även textrutorna så jag vill kunna lägga varje bild specifikt för sig efter de har laddats upp. Kom på att detta kunde varit bra att skriva från början... Ber om ursäkt för det.

Jag är inte den bästa på att förklara men jag hoppas du förstår någorlunda vad jag försöker genomföra?

Så användaren väljer säg 3 bilder, skriver in titel på dem, och sedan ska det hela skickas till servern?

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

Så användaren väljer säg 3 bilder, skriver in titel på dem, och sedan ska det hela skickas till servern?

Ja, de 3 bilderna o deras titlar hamnar i en tabell samtidigt som bilderna läggs i en bildmapp allt eftersom.

Permalänk
Medlem
Skrivet av kpg555:

Ja, de 3 bilderna o deras titlar hamnar i en tabell samtidigt som bilderna läggs i en bildmapp allt eftersom.

När AJAX-en kört klart så är filerna uppladdade, vad är det du pollar efter varje sekund?

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

När AJAX-en kört klart så är filerna uppladdade, vad är det du pollar efter varje sekund?

Jag kollar efter och hämtar de bilder som i tabellen som har ett högre id nummer är det som fanns där när sidan laddades.

Ex. När sidan laddas så är det högsta id nummret 100, så när 3 bilder laddas upp får dom id nr 101, 102 & 103 och dessa bilder laddas upp en och en, så varje sekund så kollar AJAX om någon bild har laddats upp som har ett högre id nummer än 100 och i sånna fall så skriver de ut den bilden på sidan tillsammans med en textruta.

Permalänk
Medlem
Skrivet av kpg555:

Jag kollar efter och hämtar de bilder som i tabellen som har ett högre id nummer är det som fanns där när sidan laddades.

Ex. När sidan laddas så är det högsta id nummret 100, så när 3 bilder laddas upp får dom id nr 101, 102 & 103 och dessa bilder laddas upp en och en, så varje sekund så kollar AJAX om någon bild har laddats upp som har ett högre id nummer än 100 och i sånna fall så skriver de ut den bilden på sidan tillsammans med en textruta.

Lägg till dem samtidigt som de laddas upp och skit i att polla. Polling är helt meningslös i detta läge.

Skickades från m.sweclockers.com

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

posta variabeln till php med javascript