I ironhead Medlem sedan mars 2001 1 346 inlägg Trådstart 24 okt. 2002 13:23 #1 jag loopar ut en massa inputrutor typ:
<form action="sida.php" method="post">
<input type="text" name="1" id="1">blah1
<input type="text" name="2" id="2">blah2
<input type="text" name="3" id="3">blah3
<input type="text" name="4" id="4">blah4
<input type="submit" value="skicka">
</form>
Hur fångar man upp värdet i dessa rutor så att respektive värde hamnar på rätt plats i databasen.
(Det kan vara olika många inputrutor beroende på hur många blah x det finns i databasen)
R Ricki Medlem sedan juni 2000 373 inlägg Skicka med en variabel som säger hur många input det finns, typ:
<form action="sida.php" method="post">
<input type="text" name="1" id="1">blah1
<input type="text" name="2" id="2">blah2
<input type="text" name="3" id="3">blah3
<input type="text" name="4" id="4">blah4
<input type="hidden" name="antal" id="<?=i?>">blah1
<input type="submit" value="skicka">
</form>
Sedan loopar du bara igenom allt när du ska kolla...
I ironhead Medlem sedan mars 2001 1 346 inlägg Tack Ricki!
Men går det inte med typ:
For each [inputruta] In [nånting] ???
Eller är jag helt ute å cyklar?!
R Ricki Medlem sedan juni 2000 373 inlägg Tror inte det, det funkar typ bara i listboxar å sånt...
I ironhead Medlem sedan mars 2001 1 346 inlägg ok!
Men om man skulle byta ut inputrutor mot listboxar hur skulle for-each satsen se ut?
Matte Medlem sedan aug. 2000 2 975 inlägg Om du loopar så att det blir så här:
<form action="sida.php" method="post">
<input type="text" name="var1" id="1">blah1
<input type="text" name="var2" id="2">blah2
<input type="text" name="var3" id="3">blah3
<input type="text" name="var4" id="4">blah4
<input type="submit" value="skicka">
</form>
så kan du på skriptsidan samla dom i en array:
foreach($_POST as $key => $val){
if (substr($key,0,3) == "var"){
$nyArray[substr($key,3)] = $val;
}
}
där index för arrayen är den siffra du angav efter 'var'.
I ironhead Medlem sedan mars 2001 1 346 inlägg Very nice Matte...tackarr!
I ironhead Medlem sedan mars 2001 1 346 inlägg Nu hamnar ju alla postningar i $val, hur kan man separera dom så man kan lägga in dom i databasen på rätt ställe med UPDATE?
Hittade det: echo "$key = $val<br>";
Matte Medlem sedan aug. 2000 2 975 inlägg Om jag förstår rätt nu så motsvarar de id du hade i formuläret id i på rader i din tabell. Då skulle du kunna göra så här:
foreach($_POST as $key => $val){
if (substr($key,0,3) == "var"){
$nyArray[substr($key,3)] = $val;
}
}
foreach($nyarray as $key => $val){
mysql_query("UPDATE tabell SET fältnamn='$val' WHERE id='$key'");
}
Men är det de enda fälten du har i ditt formulär så skulle du kunna köra det direkt mot $_POST
foreach($_POST as $key => $val){
mysql_query("UPDATE tabell SET fältnamn='$val' WHERE id='".substr($key,0,3)."'");
}
I ironhead Medlem sedan mars 2001 1 346 inlägg försöker fånga formuläret med:
include( '../includes/dbConn.php' );
$company = "";
$company = $_GET["id"];
foreach($_POST as $key => $val){
$query = "UPDATE sortorder SET SortOrder='$val' WHERE id='".substr($key,0,3)."' AND CompId='$company'";
$result = mysql_query($query, $link);
}
Men inget händer i databasen..kan nån se vad som är fel?
I ironhead Medlem sedan mars 2001 1 346 inlägg äsch glömde ändra till:
$query = "UPDATE sortorder SET SortOrder='$val' WHERE id='".substr($key,3)."' AND CompId='$company'";
Absolut lysande Matte...tack!