Valkuilen zijn:
- geen of dubbele name attributen
- formuliervelden die niet tussen <form> en </form> geplaatst zijn
- formulieren met een disabled attribuut worden niet gepost
- formulieren mogen niet in elkaar genesteld zijn (<form> ... <form> ... </form> ... </form>)
[size=xsmall]Toevoeging op 31/07/2017 12:18:35:[/size]
oh wait...
SendData(this) ... this lijkt mij naar je select te verwijzen. wellicht is dat de reden. Laat die functie SendData eens zien?
Zoals je kunt zien zit het hidden field ook in de while loop.
echter maakt het niet uit welke row ik selecteer hij geeft altijd maar 1 id weer.
Dus de output
is nu dit
Als ik de eerste row pak met de eerste kleur dan heb ik als output
array(2) { ["color"]=> string(1) "1" ["id"]=> string(3) "348" }
Pak ik de 2de row met de eerste kleur dan heb ik als output
array(2) { ["color"]=> string(1) "0" ["id"]=> string(3) "348" }
dus hij verandert de kleur niet en ook de juiste id geeft die niet mee.
Of miet ik de function ook in de while loop zetten?
oke door de while echo je meerdere formulieren onder elkaar. En een gouden regel in HTML is dat een id maar één keer voor mag komen (een class mag wel meerdere keren voorkomen).
Je zult dus het id van de <form> in je lus telkens moeten wijzigen. Dit kan bijvoorbeeld als volgt:
<?php
echo '
<tr>
<form method="post" action="" id="myform' . ++$i . '">'
?>
Vervolgens krijg je dan nog het probleem dat je functie SendData wel moet weten welk formulier hij moet posten..
hiervoor zou je $i mee kunnen geven als parameter
onchange="sendData(<?php echo $i; ?>);"
en je functie wordt dan iets als:
function sendData(nr) {
var data = $("#myform" + nr).serialize();
// debug regeltje
console.log(data);
$('#output').html('<img src="LoaderIcon.gif" />');
jQuery.ajax({
url: "ajax.php",
data: data,
type: "POST",
success:function(data){$('#container').html(data);}
});
}