Meerdere updates op 1 pagina !
Ik heb een volgende vraag: ik heb verschillende input velden die ik apart wens updaten, is dit mogelijk en hoe verwerk ik dit?
Maak ik per verzendbutton een formulier zoals een gewone update, of is er een andere mogelijkheid?
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
Kleur:<input type="text" id="kleur" name="kleur" maxlength="10">
<input class="updatebutton" name="verzenden" type="submit" id="verzenden" value="Upate"><br />
Aantal:<input type="text" id="aantal" name="aantal" maxlength="10">
<input class="updatebutton" name="verzenden" type="submit" id="verzenden" value="Upate"><br />
lengte:<input type="text" id="lengte" name="lengte" maxlength="10">
<input class="updatebutton" name="verzenden" type="submit" id="verzenden" value="Upate"><br />
?>
Kleur:<input type="text" id="kleur" name="kleur" maxlength="10">
<input class="updatebutton" name="verzenden" type="submit" id="verzenden" value="Upate"><br />
Aantal:<input type="text" id="aantal" name="aantal" maxlength="10">
<input class="updatebutton" name="verzenden" type="submit" id="verzenden" value="Upate"><br />
lengte:<input type="text" id="lengte" name="lengte" maxlength="10">
<input class="updatebutton" name="verzenden" type="submit" id="verzenden" value="Upate"><br />
?>
Thx
Het is mogelijk, alleen niet op de manier waarop je het momenteel hebt opgebouwd. Je mist ten eerste <form> element, waardoor jouw formulier dus nooit zou worden verzonden naar de server. Je kan de input velden in 3 apprte forms zetten. Zoals ik hieronder toon:
Code (php)
1
2
3
4
5
2
3
4
5
<form action="POST" method="(JOUW UPDATE PAGINA)">
Aantal:<input id="aantal" type="text name="aantal" maxlenght="10" />
<input class="updatebutton" name="verzenden" type="submit" id="verzenden" value="Update" />
</form>
etc..
Aantal:<input id="aantal" type="text name="aantal" maxlenght="10" />
<input class="updatebutton" name="verzenden" type="submit" id="verzenden" value="Update" />
</form>
etc..
Als je het allemaal naar dezelfde update pagina toestuurt, kan je werken met een GET om vervolgens te ontdekken wat er moet worden geupdate dus:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$get = $_GET['mode'];
if($get === 'kleur') {
// Update kleur
} else if($get === 'Aantal') {
// Update aantal
} else if($get === 'lengte') {
// Update lengte
} else {
// Geen van alle 3, toon foutmelding
}
} else {
// Geen bericht gestuurt, toon foutmelding
}
?>
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$get = $_GET['mode'];
if($get === 'kleur') {
// Update kleur
} else if($get === 'Aantal') {
// Update aantal
} else if($get === 'lengte') {
// Update lengte
} else {
// Geen van alle 3, toon foutmelding
}
} else {
// Geen bericht gestuurt, toon foutmelding
}
?>
Ikzelf, zou dit nooit doen, 3 apparte forms opbouwen, om het apparte te updaten. Het is onhandig, vooral als ik 2 velden of meer wil veranderen.
De update die lukt wel, maar als ik 1 update uitvoer, dan gaan ze beide en krijg ik een leeg veld. Dus hoe laat ik er maar 1 uitvoeren op dezelfde pagina ?
Je gebruikt POST en GET door elkaar.
Kan dit?
En zo ja, waarom doe je dat zo?
Quote:
Je gebruikt POST en GET door elkaar.
Kan dit?
Kan dit?
Volgens mij wel en dat biedt tevens een mogelijke uitkomst op vraag van dit topic.
Om Langleven Tips' uitwerking iets simpeler en concreter te maken:
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
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
<?php
if($_POST){
$get = $_GET['mode'];
if($get === 'kleur') {
// Update kleur
} else if($get === 'Aantal') {
// Update aantal
} else if($get === 'lengte') {
// Update lengte
} else {
// Geen van alle 3, toon foutmelding
}
}
?>
<form action="?mode=kleur" method="post">
Kleur:<input type="text" id="kleur" name="kleur" maxlength="10">
<input class="updatebutton" name="verzenden" type="submit" id="verzenden" value="Upate">
</form>
<form action="?mode=aantal" method="post">
Aantal:<input type="text" id="aantal" name="aantal" maxlength="10">
<input class="updatebutton" name="verzenden" type="submit" id="verzenden" value="Upate">
</form>
<form action="?mode=lengte" method="post">
lengte:<input type="text" id="lengte" name="lengte" maxlength="10">
<input class="updatebutton" name="verzenden" type="submit" id="verzenden" value="Upate"><br />
</form>
if($_POST){
$get = $_GET['mode'];
if($get === 'kleur') {
// Update kleur
} else if($get === 'Aantal') {
// Update aantal
} else if($get === 'lengte') {
// Update lengte
} else {
// Geen van alle 3, toon foutmelding
}
}
?>
<form action="?mode=kleur" method="post">
Kleur:<input type="text" id="kleur" name="kleur" maxlength="10">
<input class="updatebutton" name="verzenden" type="submit" id="verzenden" value="Upate">
</form>
<form action="?mode=aantal" method="post">
Aantal:<input type="text" id="aantal" name="aantal" maxlength="10">
<input class="updatebutton" name="verzenden" type="submit" id="verzenden" value="Upate">
</form>
<form action="?mode=lengte" method="post">
lengte:<input type="text" id="lengte" name="lengte" maxlength="10">
<input class="updatebutton" name="verzenden" type="submit" id="verzenden" value="Upate"><br />
</form>
Ik sluit me er overigens bij aan dat zo'n werkwijze niet aanraadbaar is. Gebruikers zullen geheid in de war raken wanneer ze alle velden invullen en slechts één veld daadwerkelijk aangepast wordt.
Als je een toepassing wil waarbij ieder veld individueel wordt bijgewerkt, dan raad ik aan te werken met javascript/jquery en ajax. Dit maakt het mogelijk directe feedback te geven voor de gebruiker, zodat eventuele verwarring vermeden kan worden. Het maakt je code er overigens wel een stukje lastiger op, alhoewel ik dat het persoonlijk waard zou vinden.
Gewijzigd op 16/05/2013 13:34:08 door Kevin Driessen
In 'action' zit dus de GET en in 'method' de POST.
Het is inderdaad een wat eigenaardige constructie.
Gewijzigd op 16/05/2013 19:00:19 door Pieter R