Just nu i M3-nätverket
Jump to content

Olika antal $_POST skickas...


bruze

Recommended Posts

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]

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...