Submit form met add button en array pakt alleen eerste input

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Richard Hansma

Richard Hansma

17/12/2012 18:05:57
Quote Anchor link
Beste PHP-ers,

Ik heb een link gevonden op internet: link

Daar staat ongeveer precies wat ik wil, alleen als ik meerdere input velden heb, verstuurd hij alleen diegene die er al staat, niet die toegevoegd worden door jQuery. Er is ook een `getButtonValue`, maar dat wordt niet via php gedaan. Ik wil als ik op submit druk, dat ik via
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php print_r($_POST['textbox']);
?>
alles te zien krijg.

Is dit mogelijk? Zo ja, kan ik een zetje in de goede richting krijgen? Want ik heb geen idee hoe ik dit moet oplossen...
 
PHP hulp

PHP hulp

21/11/2024 17:36:12
 
- SanThe -

- SanThe -

17/12/2012 18:10:04
Quote Anchor link
Niet
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php print_r($_POST['textbox']);
?>


Maar
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php print_r($_POST);
?>
 
Richard Hansma

Richard Hansma

17/12/2012 18:33:23
Quote Anchor link
Bedankt voor het wijzen daarop, maar hij pakt nog steeds alleen de eerste input en de submit...
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

17/12/2012 18:49:12
Quote Anchor link
Er staat een grove fout in die link die je geeft, ik doe hier ongeveer hetzelfde maar met meerdere velden.
Misschien dat je daar iets mee kan.
 
Richard Hansma

Richard Hansma

17/12/2012 20:48:06
Quote Anchor link
Hey Ger,

Ik heb er even naar gekeken, maar ik begrijp er niet erg veel van. Ondanks dat het wel werkt, wil ik graag weten wat ik doe.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<script>
$(".rowadder").click(function() {
    aid = $(this).attr("id").substr(6);
    groupid = "#group_" + aid;
    $(groupid).append('<div><div><input type="text" name="label_' + aid + '[]" /></div><div><input type="text" name="price_add_' + aid + '[]" /></div></div>')
});
</script>


Waarom substr(6)? Ik heb andere cijfers geprobeerd, geen cijfer, maar dan werkt het niet.

En ik wil graag dat de input velden die je toevoegt ook in de bronpagina komen, maar dat wil niet zeker?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

17/12/2012 21:40:59
Quote Anchor link
Beetje browser afhankelijk, IE en FF geven de broncode zoals die bij het laden van de pagina is. Je kan dit via de console wel bekijken.

Let op dat Javascript met het gebruik van quotes niet werkt zoals PHP dat doet, je moet daar gewoon escapen.

Bovenstaande code is gebaseerd op een systeempje om gebruikers formulieren te kunnen laten maken voor aangepaste producten, vandaar het groeperen van de inputs, en de selector een class. Daar komt ook de substr vandaan.

Jij zou dit kunnen vereenvoudigen naar 1 button met een id, en een div waarbinnen je de inputs toevoegt.
Met $(selector).append kan je gewoon plain html toevoegen aan het eind van het element.
 
Richard Hansma

Richard Hansma

18/12/2012 15:28:42
Quote Anchor link
Ik heb de code wat simpeler gemaakt, bedankt voor de moeite.
 
Kris Peeters

Kris Peeters

18/12/2012 15:43:50
Quote Anchor link
Laat me even teruggrijpen naar de eerste post.
Het is nochtans allemaal mogelijk, hoor.

Toon eens de html die overeen komt met die code.

Kijk, wat die code doet:
newTextBoxDiv.appendTo("#TextBoxesGroup");
=> dit zal dus de nieuwe <input> toevoegen aan het einde van <div id="TextBoxesGroup">

Wat nu belangrijk is, is dat dit alles gebeurt binnenin <form>
Dus, wat je moet hebben, is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<form ...>
  <div id="TextBoxesGroup">
  ...
  </div>
</form>


Als die nieuwe input binnen <form> komt, wordt ze mee verstuurd, anders niet.

Ik ben vrij gerust dat dit het probleem is.
 
Richard Hansma

Richard Hansma

18/12/2012 16:00:09
Quote Anchor link
Ik heb het nog eens overgekeken en het blijkt inderdaad dat het dan wel werkt. Vreemd dat het eerst niet werkte, aangezien ik de code zelfs klakkeloos overgenomen had, om het te testen. Maar goed, bedankt voor de moeite.
 
Kris Peeters

Kris Peeters

18/12/2012 16:54:26
Quote Anchor link
Richard Hansma op 18/12/2012 16:00:09:
... aangezien ik de code zelfs klakkeloos overgenomen had, ...


Wel ja, ik had gezien dat in het artikel met geen woord werd gerept over formulieren.
Het ware beter geweest als ze dit wel hadden gedaan.

Het lijkt me dan ook vrij logisch dat mensen, die de code gebruiken, daar zelf niet aan denken.

Ergens verder in de commentaren zie je trouwens code om het formulier met Ajax te versturen.
Gewijzigd op 18/12/2012 17:01:16 door Kris Peeters
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.