Toon posts:

[PHP] form posten met variabel aantal vars, hoe ?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoiz.

Ik heb een probleempje :
ik heb een form met daarin een lijst produkten.
achter de naam van het produkt staat een vakje
'aantal' waarin men kan ingeven hoeveel van deze produkten men wil bestellen.

nu is het probleem dat het aantal produkten variabel is
en dus ook het aantal vakjes met 'aantal'
de bedoeling is dat er een string wordt gepost naar een
andere PHP pagina, die er als volgt uitziet :
produkt1ID,aantal1.produkt2ID,aantal2. etc..

dus een ID voor het produkt en het aantal wat daarbij hoort.

maar ik weet niet hoe ik dit moet oplossen,
vast heel simpel, maar ik kom er niet op |:(

iemand een idee ??
alvast bedankt.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:02

gorgi_19

Kruimeltjes zijn weer op :9

Waarom wil je hier een string van maken?

Noem je formvariabelen (naam_1, naam_2, etc.)
Gebruik POST
En haal ze in de andere pagina op door middel van een loop, waarin je alle variabelen langsloopt.
Desnoods kan je deze dan in een array stoppen, zodat je krijgt
code:
1
2
    $Formnaam(1) = "blaat"
    $Formnaam(2) = "blaat2"

[Disclaimer]
De oplettende lezer heeft waarschijnlijk al uitgevonden dat de structuur misschien klopt, maar de code niet. Dit klopt, kan ook niets van PHP.. :(, maar de structuur moet volgens mij wel werken.
[/Disclaimer]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • johnny7
  • Registratie: November 2000
  • Laatst online: 07-11-2023
Waarom stop je niet alles in een array?
Dus product[id]=aantal.
Je kunt dan vervolgens met foreach(array as id=>element) door de array heen lopen. :?

Verwijderd

Topicstarter
Ik wil er een string van maken, omdat dat compacter is.
als ik strax 12000 produkten heb, worden er 12000 variabelen gepost, ik weet niet of dat handig is..

het zou opzich wel kunnen, alleen dan moet er eerst gecontroleerd worden of het aantal bij het betreffende produkt NUL is, en dan dus niet posten.

maar dit is volgens mij niet mogelijk of wel ?

Verwijderd

Topicstarter
Op dinsdag 23 juli 2002 15:27 schreef johnny7 het volgende:
Waarom stop je niet alles in een array?
Dus product[id]=aantal.
Je kunt dan vervolgens met foreach(array as id=>element) door de array heen lopen. :?
Is opzich wel een goed idee, maar hoe stop ik alles
in een array als ik op een submit knop druk ?
is dit uberhaupt mogelijk ?

als dat kan, dan is dat idd wel de beste oplossing..

  • johnny7
  • Registratie: November 2000
  • Laatst online: 07-11-2023
12000 producten via een form selecteren, lijkt me niet echt realistisch. Als het aantal in een textboxje ingevuld moet worden, kun je kijken of de waarde (een string) een getal is met is_numeric functie. Dit kun je dus controleren in die array-loop van foreach.....

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

[topic=549879/1/100]
zoiets?

Doet iets met Cloud (MS/IBM)


  • source
  • Registratie: Januari 2000
  • Laatst online: 05-06 11:53
(jarig!)
heb laatst zoiets gemaakt voor een vriend van me, een simpel formpje die eerst vraagt hoeveel tracks er op een cd staan en daar vanuit dat aantal een form opbouwt..

misschien heb je er wat aan:
PHP:
1
<?require_once("db.php");if ($action == "" || !$action){    ?>   <form name=pre method=post action="jorrit.php?action=build">    <table>     <tr>      <td>       aantal tracks op de cd      </td>      <td>       <input type=text name=aantal size=2 maxlength=2>      </td>     </tr>     <tr>       <td>      <input type=submit value="Build the form">      </td>     </tr>    </table>   </form>    <?}if ($action == "build"){    ?>   <form name=build method=post action="jorrit.php?action=insert">   <input type=hidden name=aantal value="<?=$aantal?>">    <table>    <?   for ($i=1; $i <= $aantal; $i++)    {       ?>       <tr>        <td>         Artiest        </td>        <td>         <input type=text name=artiest<?=$i?> size=40 maxlength=40>        </td>        <td>         Titel        </td>        <td>         <input type=text name=titel<?=$i?> size=40 maxlength=40>        </td>       </tr>        <?    }   ?>     <tr>       <td>      <input type=submit value="Insert the form">      </td>     </tr>    </table>   </form>   <?}if ($action == "insert"){     $conn = db_connect();       if (!$conn)     return "Could not connect to database server - please try later.";     $count_errors = "0";     for ($i=1; $i <= $aantal; $i++)    {       $temp_artiest = "artiest".$i;       $temp_titel = "titel".$i;       $result = mysql_query("insert into test (artiest, titel) values ('".$$temp_artiest."', '".$$temp_titel."')");       if (!$result)         $count_errors++;       }    if ($count_errors == "0")     echo "Your CD was succesfully submitted!";}?>

kijk maar ff of je er iets aan hebt.

Diplomacy is the ability to tell a person to go to hell in such a nice way that he looks forward to the trip.


  • johnny7
  • Registratie: November 2000
  • Laatst online: 07-11-2023
Op dinsdag 23 juli 2002 15:32 schreef TRoZZ het volgende:

[..]

Is opzich wel een goed idee, maar hoe stop ik alles
in een array als ik op een submit knop druk ?
is dit uberhaupt mogelijk ?

als dat kan, dan is dat idd wel de beste oplossing..
code:
1
2
3
4
5
printf("<form>\n");
for ($id=2000;$id<2020;$id++)
  printf("<input type='text' name='product[$id]' size='10'>\n");
printf("<input type='submit' value='submit'>\n");
printf("</form>\n");

Als je dit uitvoert, komen alle waarden die je invult in een array $product te staan. Het lijkt me dat je het vanaf hier wel verder kunt. ;)

Verwijderd

Topicstarter
Ahhh,
zoiets zocht ik ja !
dat is wel handig idd :)

bedankt !
ga het even proberen !

Verwijderd

[topic=554559/1/25]

Heb het probleem ook gehad :)
Pagina: 1