Avatar billede anderseiler Nybegynder
22. februar 2006 - 17:29 Der er 7 kommentarer og
1 løsning

En form til en while

Hej :) Ja så er jeg her igen... Og igen har jeg lidt af et problem... Jeg har følgende kode:

echo "<form action=\"\" method=\"post\">";

$query = mysql_query("SELECT * FROM varer ORDER BY id",$db);
while($bestil = mysql_fetch_assoc($query))
{
    echo "
    <input type=\"hidden\" name=\"id\" value=\"".$bestil['id']."\">
    <input type=\"hidden\" name=\"pris\" value=\"".$bestil['pris']."\">
    <input type=\"hidden\" name=\"navn\" value=\"".$bestil['navn']."\">
    <table class=\"text1\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" width=\"500\" border=\"1\">
    <tr>
      <td width=\"200\">".$bestil['navn']."</td>
      <td width=\"100\">".$bestil['pris']." kr/stk.</td>
      <td width=\"100\"><input type=\"tekst\" name=\"antal\" class=\"formText\" size=\"3\" value=\"".$bestil['samlet_antal']."\"> stk.</td>
    </tr>
    </table>";
}

echo "<input type=\"submit\" name=\"bestil\" value=\"Fortsæt bestilling\" class=\"formButton\">
</form>";

Lad os sige at while() udskriver 10 poster.. Er der så ikke en måde hvorpå, at jeg kan udfylde data i hver af de 10 <input type=\"tekst\">, og så opdatere alle 10 på én gang med én knap?

Mvh
Anders
Avatar billede dennism Nybegynder
22. februar 2006 - 17:44 #1
Hvis du sørger for at nummerere dine input, så er det vel ik noget problem? Bare de ikke har samme navn.

Desuden er der ikke en input type som hedder tekst.
Avatar billede anderseiler Nybegynder
22. februar 2006 - 17:49 #2
<input type=\"tekst\"> har aldrig givet problemer hos mig... Den viser det helt som den skal.. Anden sag :)

Det med at nummmerere mine inputs, det er jo der problemet opstår, fordi jeg henter jo flere forskellige med samme while()..

Men i teorien, ville følgende så ikke virke:

while($bestil = osv.....)
{
  echo "
  <input type=\"tekst\" name=\"".$bestil['navn']."\">";
}

og så når man trykker submit, så:

if(isset($_post['submit']))
{
  while($bestil = osv samme query som før)
  {
    mysql_query("INSERT INTO tabel (navn) VALUES ('".$bestil['navn']."')",$db);
  }
}


Ville det ikke virke? :P
Avatar billede dennism Nybegynder
22. februar 2006 - 17:57 #3
Det hedder: <input type="text">
Grunden til den virker hos dig alligevel, er at tekst ikke er en accepteret type, hvorefter den så bare tager standardtypen text :)

Ja, så vidt jeg kan gennemskue, så holder din teori :)
Avatar billede anderseiler Nybegynder
22. februar 2006 - 17:59 #4
Okay (til begge dele...)

Jeg tester lige, og så vender jeg tilbage :)
Avatar billede anderseiler Nybegynder
22. februar 2006 - 18:17 #5
Når man har det her

$query = mysql_query("SELECT * FROM varer ORDER BY id",$db);
while($bestil = mysql_fetch_assoc($query))
{
  <input type=\"hidden\" name=\"id"."_".$bestil['navn']."\">
}

kan man så ikke kalde den igen med

$queryb = mysql_query("SELECT * FROM varer ORDER BY id",$db);
while($b = mysql_fetch_assoc($queryb))
{
  echo $_POST['id_$b[\'navn\']'];
}

Kan nemlig ikke finde ud af at få fat på den variabel igen... Og uden det kan jeg ikke rigtig kommer videre :P
Avatar billede anderseiler Nybegynder
22. februar 2006 - 19:24 #6
Det virker det jeg har lavet.. Man kører bare $_POST['id_'.$b['navn'].''] så kan den godt forstå det :)

Men klart point til dig for hjælpen (hvis du smider et svar :P) ;)

Jeg takker for hjælpen...

Mvh
Anders
Avatar billede anderseiler Nybegynder
10. marts 2006 - 18:56 #7
Lukker nu...!
Avatar billede dennism Nybegynder
10. marts 2006 - 19:43 #8
Beklager - havde ikke set at du ville have et svar :(
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester