Just nu i M3-nätverket
Gå till innehåll

Olika antal $_POST skickas...


bruze

Rekommendera Poster

Hej!

Klarar inte av att lösa hur jag skall bära mig åt när jag vill mottaga värden från en formulär som skickar olika antal "fält" varje gång.

 

Har i ett formulär en loop

 

<input type='hidden' name='ArtkorgID".$Kolumn['artkorg_id']."' value='".$Kolumn['artkorg_id']." '>

<input type='hidden' name='ArtikelId".$Kolumn['artkorg_id']."' value='".$Kolumn["art_id"]." '>

<input type='text' name='Antal".$Kolumn['artkorg_id']."' value='".$Kolumn["artkorg_antal"]." '>

 

 

Det är på mottagare sidan där jag skall uppdatera tabellen som jag inte får till det.

 

foreach($_POST as $key => $val)

{

$sql = "UPDATE korg SET antal='".$_POST['Antal']."' WHERE artikelid='".$_POST['ArtikelId']."'";

 

}

 

Har testa många lösnigar att försöka få in rätt i sql frågan men det vill sig inte...

 

Mvh bruze

[inlägget ändrat 2003-02-14 00:17:43 av bruze]

[inlägget ändrat 2003-02-14 00:19:06 av bruze]

Länk till kommentar
Dela på andra webbplatser

Du sätter ju namnet på input-fälten till "ArtikelId1", "ArtikelId2" osv, så du måste ju ta bort texten innan, i SQL-frågan (vilket du inte gör nu).

 

Sä här kan foreach-loopen se ut exempelvis:

foreach($_POST as $key => $val)
{
$prefix = "ArtikelId";
/* Kontrollera om fältet följer modellen "ArtikelIdn", där n är en siffra */
if (!preg_match("/^" . quotemeta($prefix) . "([0-9]+)$/", $key, $art)) continue; 
$id = $art[1];
$sql = "UPDATE korg SET antal='".addslashes($_POST['Antal'.$id])."' WHERE artikelid='".addslashes($id)."'";
}

Jag gillar också att tjata om att du alltid ska använda addslashes() eller liksande i SQL-frågor.

 

Länk till kommentar
Dela på andra webbplatser

Tack!

 

Angånde funktioner som är bra vid inmatning till databaser.

Vad för "saker" bör man utsätta text som skall in

/ut i databasen?

 

Har vid varje in/ut angivit någon av dessa funktioner.

 

function inmatning($text)

{

$text = eregi_replace("'", "´", $text);

return $text;

}

 

function utmatning($text)

{

$text = eregi_replace("<","&lt;",$text);

$text = eregi_replace(">","&gt;",$text);

$text = nl2br($text);

return $text;

}

 

Vad mera bör jag fylla på med i funktionerna?

 

Mvh bruze

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...