Sliver Skrevet 29. november 2003 Del Skrevet 29. november 2003 (endret) Jeg er helt nybegynner innen PHP, men har klart å lappe sammen et gjestebok script som fungerer som en siden man kan legge inn ledige vakter. (lager dette gratis for en frivillig organisasjon). Alle ledige vakter som blir lagt til(postet) legger seg øverst og får en "sett meg opp på denne vakten" link. Linken fører til en ny side som inneholder 2 inputfields for å sette seg opp på vakten. Men når jeg poster teksten fra de 2 feltene, legger de seg som en ny post øverst på siden. Det jeg ønsker er at teksten fra disse felten bli overført til, enten nederst på den aktuelle vakten/posten. Eller i et eget table under den aktuelle vakten/posten. Det må også være mulig for flere å sette seg opp på samme vakt. Siden kan sees her: http://80.111.181.221:55555/fa/index.php Kilden kan sees her: http://80.111.181.221:55555/fa/index.php.txt Siden lagrer i såkalt flatline. Et rent tekstdok (vakter.dat) "case "edit":" er siden som man setter seg opp på vakt på (neders på scriptet). Hadde vært utrolig snillt om noen kunne skrevet (case "edit" siden riktig for meg. Eller gitt meg noen tips. Endret 30. november 2003 av Sliver Lenke til kommentar
Neo Skrevet 30. november 2003 Del Skrevet 30. november 2003 Et lite råd: "ikke post flere hundre linjer med kode ( ) da det er ytterst få som kommer til å tilby hjelp. Tar altfor lang tid å sette seg inn i. Jeg er villig til å hjelpe hvis du spesifiserer problemet litt mer. Kanskje litt om hvordan dat-filen er bygd opp og hva som skal inn det i tillegg og hva kjernen i problemet ditt er. Lenke til kommentar
Goebbels Skrevet 30. november 2003 Del Skrevet 30. november 2003 Et lite råd: "ikke post flere hundre linjer med kode ( ) nånå, var da ikke mer en 559 linjer Lenke til kommentar
Sliver Skrevet 30. november 2003 Forfatter Del Skrevet 30. november 2003 Har prøvd å gjøre posten litt mer fornuftig og forstålig. Håper det er en smarting der ute som kan hjelpe meg. Lenke til kommentar
sven-o Skrevet 30. november 2003 Del Skrevet 30. november 2003 Jeg ville ha gått vekk fra hele flat-file opplegget. Å lagre data på den måten er bare tull, og fører bare til hårete kode. Strukturer heller dataen i et 2-dimensojnalt array med streng-indexer, og benytt timestamp som id. Eksempel: Legge til en vakt: //Last inn alle vaktene til $vakter $vakter = unserialize(implode('',@file('vakter.dat'))); $tid = time(); $vakter[$tid]['tid'] = $_POST['vdato']; $vakter[$tid]['objekt'] = $_POST['vobjekt']; $vakter[$tid]['o_leder'] = $_POST['vobjl']; $vakter[$tid]['kommentar'] = $_POST['vcomment']; //Lagre $fp = fopen('vakter.dat','w'); fwrite($fp, serialize($vakter)); fclose($fp); Endre en vakt(de to postene:) I dette skjemaet trenger du en hidden input som holder id'en. //Last inn alle vaktene til $vakter $vakter = unserialize(implode('',@file('vakter.dat'))); $tid = $_POST['id']; $vakter[$tid]['vvnavn'] = $_POST['vvnavn']; $vakter[$tid]['vvkommentar'] = $_POST['vcomment2']; //Lagre $fp = fopen('vakter.dat','w'); fwrite($fp, serialize($vakter)); fclose($fp); For å liste opp alle vaktene(formater slik du ønsker det): $vakter = unserialize(implode('',@file('vakter.dat'))); foreach(array_keys($vakter) as $tid){ echo "Tid/dato: ".$vakter[$tid]['tid']."<br>"; echo "Objekt: ".$vakter[$tid]['objekt']."<br>"; echo "Objektleder: ".$vakter[$tid]['o_leder']."<br>"; echo "Kommentar: ".$vakter[$tid]['kommentar']."<br>"; echo "Vakt: ".$vakter[$tid]['vvnavn']."<br>"; echo "Kommentar: ".$vakter[$tid]['vvkommentar']."<br><br>"; } Jeg har ikke testet dette, men i teorien bør det funke. Jeg har gjort noe liknende før. Det digge med serialisering er at du slipper alt køddet med å parse en haug linjer i en fil. Lenke til kommentar
Sliver Skrevet 30. november 2003 Forfatter Del Skrevet 30. november 2003 Takk Sven-O dette kan jeg nok bruke ja! Eneste problemet er at det er bare en som kan sette seg opp på hver enkelt vakt. Det ideelle hadde vært at flere kunne satt seg opp på samme vakt. At det ble lagt til 2 rows med tekst under vakten, for hver som satte seg opp. Noen tips? Lenke til kommentar
sven-o Skrevet 30. november 2003 Del Skrevet 30. november 2003 Istedetfor å ha: $vakter[$tid]['vvnavn'] = $_POST['vvnavn']; $vakter[$tid]['vvkommentar'] = $_POST['vcomment2']; kan du la dette være enda et array, slik: $svar['vvnavn'] = $_POST['vvnavn']; $svar['vvkommentar'] = $_POST['vcomment2']; $vakter[$tid]['vsvar'][] = $svar; Her vil $vakter[$tid]['vsvar'][] fungere som et array av svar som per vakt kan hentes ut slik: foreach($vakter[$tid]['vsvar'] as $svar){ echo "Vakt: ".$svar['vvnavn']."<br>"; echo "Kommentar: ".$svar['vvkommentar']."<br><br>"; } Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå