[PHP] Form binnen een form: hoe waardes versturen?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik zit met een probleem, ik heb de volgende code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
  while ($details = mysql_fetch_array($result)) {
?>
<form action="bestand.php" method="get">
<table id="articleedittextnormal" width="602" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="10" class="articleedittopsides">&nbsp;</td>
    <td colspan="2" class="articleedittop"><strong>Productnaam:</strong>
      <input name="productnaam" type="text" style="text-align : left" class="articleeditfield" value="<?php echo $details[ProductName]; ?>" size="24" maxlength="24"><br />
      <strong>Productomschrijving:</strong>
      <input name="productomschrijving" type="text" style="text-align : left" class="articleeditfield" value="<?php echo $details[ProductDescriptionSmall]; ?>" size="48" maxlength="48"></td>
    <td colspan="2" align="right" class="articleedittop"><strong>ProductID:</strong> <?php echo $details[id]; ?></td>
    <td width="10" class="articleedittopsides">&nbsp;</td>
  </tr>
  <tr>
    <td class="articleeditemptyspaceleft">&nbsp;</td>
    <td colspan="4"><strong>Uitgebreide omschrijving</strong></td>
    <td class="articleeditemptyspaceright">&nbsp;</td>
  </tr>
  <tr>
    <td class="articleeditemptyspaceleft">&nbsp;</td>
    <td colspan="4"><textarea name="productomschrijvinguitgebreid" cols="106" style="text-align:left" class="articleedittextareafield"><?php echo $details[ProductDescriptionBig]; ?></textarea><br />&nbsp;</td>
    <td class="articleeditemptyspaceright">&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td width="356" align="right" class="articleeditspaceborders"><strong>Foto aanpassen:</strong>&nbsp;</td>
    <td width="44" class="articleeditspaceborders3">[img]"images/edit.gif"[/img]</td>
    <td class="articleeditmiddleline" width="10" rowspan="5"><br />
    &nbsp;</td>
    <td width="164" align="center" class="articleeditspaceborders2"><strong>Productcategorie: </strong><?php echo $details[ProductCategory]; ?></td>
    <td class="articleeditproductcategoryleft" rowspan="2" >&nbsp;</td>
  </tr>
  <tr>
    <td class="articleeditemptyspaceleft">&nbsp;</td>
    <td colspan="2" rowspan="4" class="articleeditpicture">[img]"<?php[/img]" alt="Test"></td>
    <td class="articleeditcategorieradio">
    <input type="radio" name="productcategorie" value="1">1. Aanbiedingen<br />
    <input type="radio" name="productcategorie" value="2">2. Noviteiten<br />
    <input type="radio" name="productcategorie" value="3">3. Merken<br />
    <input type="radio" name="productcategorie" value="4">4. Boten<br />
    <input type="radio" name="productcategorie" value="5">5. Hengelsport<br />&nbsp;</td>
  </tr>
  <tr>
    <td class="articleeditemptyspaceleft">&nbsp;</td>
    <td align="center"><strong>Prijs:</strong>&nbsp;
      <input name="productprijs" type="text" style="text-align : left" class="articleeditfield" value="<?php echo $details[ProductPrice]; ?>" size="7" maxlength="7">
    <br />      &nbsp;</td>
    <td class="articleeditproductcategoryleft">&nbsp;</td>
  </tr>
  <tr>
    <td rowspan="2" class="articleeditemptyspaceleft">&nbsp;</td>
    <td height="123" class="articleeditbuttons"><strong>Aanpassen:</strong><input name="Dikke shit" type="image" src="images/edit.gif" value="yeah" alt="Pas artikelgegevens aan" width="17" height="17"></td>
    <td rowspan="2" class="articleeditproductcategoryleft">&nbsp;</td>
  </tr>
  <tr>
    <td class="articleeditbuttons2"><strong>Verwijderen:</strong><input name="<?php echo $details[id]; ?>" type="image" src="images/delete.gif" alt="Verwijder dit artikel uit de database" onClick="DeleteFromDatabase(this)" value="true" width="17" height="17"></td>
  </tr>
</table>
</form>
<br />
<?php
}
?>


Sorry voor de grootte van de hoeveelheid tekst, maar waar het nu om gaat is het volgende. Er wordt steeds per product een tabel aangemaakt (met alle bijbehorende details van dat product) die in de database staan. In die tabel staan verschillende knoppen. Een knop om het gehele product te verwijderen. Deze knop werkt, zodra er tenminste geen gebruik wordt gemaakt van een form.
Nu is het de bedoeling dat alle verschillende items per product ook aangepast kunnen worden, hiervoor is dus een form nodig om alle verschillende VALUES te onthouden. Als ik een form gebruik neemt hij ook de VALUE van de verwijderknop mee, omdat die binnen de form aanwezig is.
Hoe kan ik dit anders oplossen?

In het voorbeeld wordt dus gebruik gemaakt van een form, waardoor de verwijder knop niet meer werkt. Ik hoop dat ik een beetje duidelijk ben.

[ Voor 52% gewijzigd door Verwijderd op 07-07-2006 17:18 ]


Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
Ik snap je form in form idee niet echt, want volgens mij mag dat helemaal niet (kan ik me tenminste niet voorstellen)
(ga ik ff nakijken)
nope je mag geen forms binnen forms doen


maar als je meerdere forms hebt, of een form zoals bij got de quickreply, met 2 submit knoppen, dan kan je dmv javascript bij de onclick van zo'n knop een waarde zetten voordat je je form submit, deze waarde bepaald dan op welke knop je gedrukt heb

[ Voor 12% gewijzigd door BasieP op 07-07-2006 17:23 ]

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 18-09 14:42
Klopt BasieP, je kan een formulier niet nesten in een ander formulier.

Je zult creatief moeten doen met de namen van je submit buttons, om te kunnen bepalen wat er precies moet gebeuren.

[ Voor 46% gewijzigd door frickY op 07-07-2006 17:21 ]


Acties:
  • 0 Henk 'm!

  • Pyrus
  • Registratie: November 2001
  • Laatst online: 20-09 21:30

Pyrus

Hardknock life

Volgens mij hoef je niet eens met javascript te rotzooien. Gewoon de knoppen een naam geven is voldoende dacht ik.

Voor de zekerheid ff gecheckt, en idd een naam aan je knop geven is genoeg :)

code:
1
2
3
4
5
<form method="post" action="formtest.php">
<input type="text" name='test'>
<input type="submit" value="knop1" name="knop">
<input type="submit" value="knop2" name="knop">
</form>

en dan kun je in php met
PHP:
1
$_POST['knop']
kijken op welke er is gedrukt (daar staat dan de waarde uit het value attribuit)

[ Voor 65% gewijzigd door Pyrus op 07-07-2006 17:33 ]

LinkedIn


Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
Pyrus schreef op vrijdag 07 juli 2006 @ 17:28:
Volgens mij hoef je niet eens met javascript te rotzooien. Gewoon de knoppen een naam geven is voldoende dacht ik.
als je naar 1 pagina submit wel ja, echter als je 2 knoppen hebt die naar verschillende pagina's submitten moet je natuurlijk wel iets met JS doen

[ Voor 7% gewijzigd door BasieP op 07-07-2006 17:33 ]

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
BasieP schreef op vrijdag 07 juli 2006 @ 17:33:
[...]


als je naar 1 pagina submit wel ja, echter als je 2 knoppen hebt die naar verschillende pagina's submitten moet je natuurlijk wel iets met JS doen
Het probleem is niet zozeer op welke van de knoppen er gedrukt wordt, het is meer hoe ik bepaal welke waardes worden meegegeven aan de verschillende knoppen.

Knop 1: verwijderen --> Ik hoef alleen maar een productID mee te geven, welke verwijderd moet worden. In het begin van het bestand handelt de volgende code het verwijderen van het veld af.
PHP:
1
2
3
4
5
6
7
8
9
10
   if(isset($_GET['productid']) and isset($_GET['delete']))
   { 
     if ($_GET['delete'] = true)
     {
     $productIDtodelete = $_GET['productid'];
     mysql_query ("DELETE FROM Products where ID = $productIDtodelete limit 1");
     $_GET['delete'] = false;
     $_GET['productid'] = '';
     }
   }


Knop 2: aanpassen --> In het bestand is het mogelijk om alle waardes aan te passen. Hoe kan ik er nu zorg voor dragen (zonder een formulier te gebruiken dus, dat alle waardes worden meegestuurd?). In de value kan ik maar één iets kwijt, voor zover ik weet. Ik moet echter wel 6 a 7 verschillende waardes meesturen.

[ Voor 12% gewijzigd door Verwijderd op 07-07-2006 17:51 ]


Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Hoe wil je een boolean controleren op een grotere waarde dan true (of, andersom gezien) false? :?
Een boolean is alleen maar true of false... ;)

[ Voor 15% gewijzigd door CH4OS op 07-07-2006 17:50 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
GJ-tje schreef op vrijdag 07 juli 2006 @ 17:48:
Hoe wil je een boolean controleren op een grotere waarde dan true (of, andersom gezien) false? :?
Een boolean is alleen maar true of false... ;)
Je hebt gelijk, ik heb het aanpast :)

Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
Verwijderd schreef op vrijdag 07 juli 2006 @ 17:42:
In de value kan ik maar één iets kwijt, voor zover ik weet. Ik moet echter wel 6 a 7 verschillende waardes meesturen.
euh.. of ik snap je echt niet of het is zo simpel:

HTML:
1
2
3
4
5
<form method="post" action="doeiets.php">
  <input type="hidden" name="id" value="<?=$itemId?>">
  <input type="submit" name="knop" value="edit">
  <input type="submit" name="knop" value="delete">
</form>


en hier je doeiets.php
PHP:
1
2
3
4
5
6
$id = $_POST['id'];
if ($_POST['knop'] == "delete") {
  //doe deleten
} else if ($_POST['name'] == "edit") {
  //doe edit
}





trouwens uit je code hierboven:
PHP:
1
if ($_GET['delete'] = true)

daar gaat ie dus altijd doorheen he, een toekenning zal in 99% van de gevallen (en ook hier dus) true opleveren
verder is $_GET['whatever'] een var, en zal dus altijd 'true' afgeven als ie geset is. als je wilt checken of ie geset is doe je dat niet met if ($var) maar met isset($var)

wat jij hier bedoelt is dus
PHP:
1
2
3
if (isset($_GET['delete'])) {
  //iets
}

[ Voor 105% gewijzigd door BasieP op 07-07-2006 18:02 ]

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

  • seamus21
  • Registratie: December 2001
  • Laatst online: 24-02-2018
Ik denk dat ik het begrijp. Je wilt dus voor ieder item een aanpasknop hebben. Echter heeft ieder item weer meerdere values die aangepast moeten worden.

1) Als ieder item steeds dezelfde lengte aantal aanpassingen hebben bv 3. Dan kan je dus bijvoorbeeld die 3 waardes aan die ene knop meegeven geschieden door een teken bijvoorbeeld #. Dus dan geef je dus mee waarde01#waarde02#waarde03. Dan kan je bij de code waar je deze aanpassingen door gaat voeren de string weer uit elkaar halen en heb je dus die 3 losse waardes weer.

2) Je zou ook mee kunnen geven een soort variatie op de bovenste. Dan geef je de veldnaam en de waarde mee weer gescheiden door zelf te kiezen tekens. Echter heb je hier als voordeel dat je niet hoeft te weten hoeveel aanapssingen je meegeeft en de volgorde ervan.

3) Misschien kan je ieder item op een aparte pagina laten editen?

[ Voor 3% gewijzigd door seamus21 op 07-07-2006 18:28 ]

Always shoot for the moon. Even if you miss you will land among the stars...


Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
seamus21 schreef op vrijdag 07 juli 2006 @ 18:27:
Ik denk dat ik het begrijp. Je wilt dus voor ieder item een aanpasknop hebben. Echter heeft ieder item weer meerdere values die aangepast moeten worden.

... insert berg moeilijke oplossingen hier ..
wat is er mis met gewoon evenveel forms als er items zijn? hidden veld dat het id van het item meegeeft (zie mijn post hierboven) en gewoon in een andere pagina adhv dat id zooit uit een Db oid ophalen en wijzigen/verwijderen whatever

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

  • seamus21
  • Registratie: December 2001
  • Laatst online: 24-02-2018
BasieP schreef op vrijdag 07 juli 2006 @ 18:29:
[...]

wat is er mis met gewoon evenveel forms als er items zijn? hidden veld dat het id van het item meegeeft (zie mijn post hierboven) en gewoon in een andere pagina adhv dat id zooit uit een Db oid ophalen en wijzigen/verwijderen whatever
Wie zegt dat er wat mis mee is :? Ik probeer gewoon wat oplossingen aan te dragen waarvan ik denk dat die de TS helpen.

Always shoot for the moon. Even if you miss you will land among the stars...


Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
seamus21 schreef op vrijdag 07 juli 2006 @ 18:40:
[...]

Wie zegt dat er wat mis mee is :? Ik probeer gewoon wat oplossingen aan te dragen waarvan ik denk dat die de TS helpen.
en das hardstikke goed, maar de oplossingen die je aandraagt (op 3 na) zijn echt ranzig, en 3 leg je denk ik verkeerd uit. Het editen van elk item op een apparte pagina is dus dmv php simpel op 1 pagina te doen als je het id van het item meegeeft

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

  • seamus21
  • Registratie: December 2001
  • Laatst online: 24-02-2018
Verwijderd schreef op vrijdag 07 juli 2006 @ 17:42:
[...]

Knop 2: aanpassen --> In het bestand is het mogelijk om alle waardes aan te passen. Hoe kan ik er nu zorg voor dragen (zonder een formulier te gebruiken dus, dat alle waardes worden meegestuurd?). In de value kan ik maar één iets kwijt, voor zover ik weet. Ik moet echter wel 6 a 7 verschillende waardes meesturen.
Of BasieP begrijpt je niet goed of ik of er is iets helemaal anders aan de hand :) kan je nog eens je probleem proberen uit te leggen of je startpost duidelijker maken?

Hebben de aangedragen oplossingen al geleid tot iets? Is het anders al opgelost, zo ja hoe?

Always shoot for the moon. Even if you miss you will land among the stars...

Pagina: 1