webForumDet fria alternativet

inputruta for each?

12 svar · 359 visningar · startad av ironhead

ironheadMedlem sedan mars 20011 346 inlägg
#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)

RickiMedlem sedan juni 2000373 inlägg
#2

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...

ironheadMedlem sedan mars 20011 346 inlägg
#3

Tack Ricki!

Men går det inte med typ:

For each [inputruta] In [nånting] ???

Eller är jag helt ute å cyklar?!

RickiMedlem sedan juni 2000373 inlägg
#4

Tror inte det, det funkar typ bara i listboxar å sånt...

ironheadMedlem sedan mars 20011 346 inlägg
#5

ok!

Men om man skulle byta ut inputrutor mot listboxar hur skulle for-each satsen se ut?

MatteMedlem sedan aug. 20002 975 inlägg
#6

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'.

ironheadMedlem sedan mars 20011 346 inlägg
#7

Very nice Matte...tackarr!

ironheadMedlem sedan mars 20011 346 inlägg
#8

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>";

MatteMedlem sedan aug. 20002 975 inlägg
#9

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)."'");
}
ironheadMedlem sedan mars 20011 346 inlägg
#10

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?

ironheadMedlem sedan mars 20011 346 inlägg
#11

äsch glömde ändra till:

$query = "UPDATE sortorder SET SortOrder='$val' WHERE id='".substr($key,3)."' AND CompId='$company'";

Absolut lysande Matte...tack!

MatteMedlem sedan aug. 20002 975 inlägg
#12

Mitt misstag :)

ironheadMedlem sedan mars 20011 346 inlägg
#13

Glöm det!

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)