noeinstein Skrevet 15. september 2008 Del Skrevet 15. september 2008 Hei, har en feil med et php skript som jeg ikke finner ut av. Problemet er at jeg har forsøkt å skrive om en mod til coppermine gallery slik at brukerne får checkboxer å velge hvilke album bildene skal opp i. Skriptet virker nesten helt perfekt, bare et problem som jeg ikke finner ut av. Det er kun verdien i siste checkboxen som blir krysset av som blir lagret i databasen. Er det noen som kan hjelpe meg med dette? Har forsøkt å ta ut den koden jeg har endret og den som har med $keywords å gjøre. Blir veldig takknemlig for hjelp da jeg har sittet med dette i noen dager nå.. Flrst den delen som jeg har vært inne og endret på: // Ok, go with "Easy keyword insert MOD v2"//mod here // The text Keyword form <---- modded input function. Takes the text label for the box, the input name, the maximum length for text boxes, // and the number of iterations. function keyword_box_input($text, $name, $max_length, $iterations, $default='') { global $CONFIG; $ordinal = ''; if (($text == '') and ($iterations == '')) { echo " <input type=\"hidden\" name=\"$name\" value=\"$default\" />\n"; return; } // Begin loop for ($counter=0; $counter<$iterations; $counter++) { // Create a numbering system when necessary. if ($text == '') { $cardinal = $counter + 1; $ordinal = "".$cardinal.". "; } // Hop stop here ! Add request of keyword_select.php to get the keyword list $query = "SELECT * FROM {$CONFIG['TABLE_PREFIX']}dict ORDER BY keyword"; $result = cpg_db_query($query); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $keywordIds[] = $row["keyId"]; $keywords[] = $row["keyword"]; } $form = ""; foreach ($keywords as $keyword) { $form.= '<input type="checkbox" name="keywords" value="'.$keyword.'">'.$keyword.'<br></input>'; } // Return at the mod // Create the keyword box. echo <<< EOT <tr> <td width="40%" class="tableb" valign="top"> Kategorier : </td> <td width="60%" class="tableb" valign="top"> <div align="left"> <label> $form </label> </div> </td> </tr> EOT; } } Så neste forekomst av @keywords i skriptet: // We have incoming placement data. Let's capture it. $album = (int)$_POST['album']; $title = addslashes($_POST['title']); $caption = addslashes($_POST['caption']); $keywords = addslashes($_POST['keywords']); $user1 = addslashes($_POST['user1']); $user2 = addslashes($_POST['user2']); $user3 = addslashes($_POST['user3']); $user4 = addslashes($_POST['user4']); Og til slutt koden for å lagre // Create thumbnail and intermediate image and add the image into the DB $result = add_picture($album, $filepath, $picture_name, 0,$title, $caption, $keywords, $user1, $user2, $user3, $user4, $category, $raw_ip, $hdr_ip, $movie_wd, $movie_ht); Lenke til kommentar
OISNOT Skrevet 15. september 2008 Del Skrevet 15. september 2008 Så kjapt gjennom det, så ikke sikkert eg forstod ka du vil... Men uten [] vil hver checkbox skrive over den forrige. Nå er det et array. while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $keywordIds[] = $row["keyId"]; $keywords[] = $row["keyword"]; $form.= '<input type="checkbox" name="keywords[]" value="'.$row["keyId"].'">'.$row["keyword"].'<br></input>'; } Her får du et array $keywords = addslashes(implode(',', $_POST['keywords'])); Lenke til kommentar
noeinstein Skrevet 16. september 2008 Forfatter Del Skrevet 16. september 2008 Hei og takk for svar. Når jeg legger til det som du har skrevet kommer det bare 'Array' inn i databasen Lenke til kommentar
OISNOT Skrevet 16. september 2008 Del Skrevet 16. september 2008 Hei og takk for svar. Når jeg legger til det som du har skrevet kommer det bare 'Array' inn i databasen Du erstattet $keywords = addslashes($_POST['keywords']); med $keywords = addslashes(implode(',', $_POST['keywords'])); ? Sånn skal det virke: <p><?php if (isset($_POST['keywords'])) { echo 'Input: ' . implode(',', $_POST['keywords']); } else { echo 'No input.'; } ?></p> <form method="post"> <p><label><input type="checkbox" name="keywords[]" value="test1" /> test1</label></p> <p><label><input type="checkbox" name="keywords[]" value="test2" /> test2</label></p> <p><label><input type="checkbox" name="keywords[]" value="test3" /> test3</label></p> <p><input type="submit"></p> </form> Lenke til kommentar
noeinstein Skrevet 16. september 2008 Forfatter Del Skrevet 16. september 2008 Hei, setter stor pris på at du forsøker å hjelpe meg med dette. Har erstattet det som du sa og får fortsatt 'Array' som verdi inn i dataasen. Er sikkert feil et helt annet sted så legger ved hele upload.php og håper at du har tid til å hjelpe litt mer. Link til siden jeg holder på med kan du få på PM hvis du vil Noeinstein upload.zip Lenke til kommentar
OISNOT Skrevet 16. september 2008 Del Skrevet 16. september 2008 Hei, setter stor pris på at du forsøker å hjelpe meg med dette. Har erstattet det som du sa og får fortsatt 'Array' som verdi inn i dataasen. Er sikkert feil et helt annet sted så legger ved hele upload.php og håper at du har tid til å hjelpe litt mer. Link til siden jeg holder på med kan du få på PM hvis du vil Noeinstein Beklager, for mye kode. Eg kan gi hint på kordan du skal løse et problem. Men ikke lage/fikse en hel applikasjon/webside. 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å