Array uitlezen uit een inputveld
HTML:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<form method="post">
<table width="90%" border="0" cellspacing="0" cellpadding="0" id="ingredienten"><tr><td>Kennis</td><td>Niveau</td></tr>
<tr>
<td><input type="text" name="naam[]" /></td>
<td><input type="text" name="niveau[]" /></td>
<p><a href="#" class="bg_grey btn_small" id="add">toevoegen</a> <a href="#" class="bg_red btn_small white" id="remove">verwijderen</a></p>
</td>
</tr>
</table>
<table width="90%" border="0" cellspacing="0" cellpadding="0" id="ingredienten"><tr><td>Kennis</td><td>Niveau</td></tr>
<tr>
<td><input type="text" name="naam[]" /></td>
<td><input type="text" name="niveau[]" /></td>
<p><a href="#" class="bg_grey btn_small" id="add">toevoegen</a> <a href="#" class="bg_red btn_small white" id="remove">verwijderen</a></p>
</td>
</tr>
</table>
En de bijhorende JS:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
<script type="text/javascript" language="javascript">
$(function() {
var i = 1;
$('a#add').click(function() {
$('<tr><td><input type="text" name="naam[]"></td><td><input type="text" name="niveau[]"></td></tr>').appendTo('#ingredienten');
i++;
});
$('a#remove').click(function() {
if(i > 1) {
$('#ingredienten tr:last-child').remove();
i--;
}
});
});
</script>
<script type="text/javascript" language="javascript">
$(function() {
var i = 1;
$('a#add').click(function() {
$('<tr><td><input type="text" name="naam[]"></td><td><input type="text" name="niveau[]"></td></tr>').appendTo('#ingredienten');
i++;
});
$('a#remove').click(function() {
if(i > 1) {
$('#ingredienten tr:last-child').remove();
i--;
}
});
});
</script>
En de vraag:
Hoe kan ik de gegevens uit de tabel uitlezen en die in de mysql plaatsen? Wat is de beste methode daarvoor? Of zit ik er helemaal naast met hetgeen ik nu al heb?
- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Alvast bedankt!
Alvast bedankt!
Gewijzigd op 25/05/2014 15:57:57 door - Ariën -
Bedenk dat html en javascript in browser van de gebruiker draait en je dus eerst de gegevens moet posten naar de server. Dit kan op de achtergrond met AJAX of door het formulier te SUBMIT-en. Het grootste verschil is dat na een submit een nieuwe pagina ingeladen wordt en met ajax kun je dmv javascript acties verichten terwijl je in dezelfde pagina blijft. Aan de kant van de server kan php er voor zorgen dat de data in de database geplaatst wordt
Alhoewel ik dat perfect kan posten en op dezelfde page kan blijven door de methode='post' te gebruiken en dan met een if (isset... in php de submit kan opvangen.
Allen is de vraag hoe ik de waarde uit de array naam[] en niveau[] kan uitlezen en die gegevens kan opslaan in een database. Eventueel kan dit met de waarden te scheiden uit de array met een komma en die zo op te slaan in de db in een veld.
Kan je mij op weg helpen? Ik heb geen idee waar te beginnen? Thanks.
Gewijzigd op 25/05/2014 15:52:31 door Brecht S
Indien je echt nog helemaal geen ervaring hebt hoe je gegevens uit een formulier terug krijgt op de webserver en hoe je ze dan in de database kunt zetten dan adviseer ik je om javascript nog totaal links te laten liggen en dus ook AJAX. In dat geval kun je beter eerst eens een simpel contact formulier maken, vervolgens iets gaan leren over SQL om daarmee de gegevens uit je contactform in de database op te slaan.
Formulier maken:
http://www.phptuts.nl/view/39/8/
https://www.youtube.com/watch?v=g_r4a-DXA7c
SQL:
http://www.phptuts.nl/view/41/
Ik weet hoe ik gegevens uit een formulier moet halen. Vb: $_POST['naam'] = $naam; en dan vervolgens echo $naam; en dan krijgen we het resultaat van een post uit een formulier. Dit was niet mijn vraag. De vraag was hoe ik de array kan uitlezen (array naam en array niveau). Er zijn nog velden in dat formulier die moeten uitgelezen worden maar dit is al in orde, daarom heb ik die ook weggelaten uit mijn vraag.
Dus uiteindelijk krijg je zoiets als:
html 50%
php 40%
enz...
Het ene zit in de array naam en de andere waarde zit in de array niveau. Kunnen we die samen houden en splitsen door een komma?
Vb output:
html, php voor de naam array
50%, 40% voor de niveau array
Het eerste item (html 50%) blijft dan samen en het 2de item (php 40%) blijft dan ook samen.
Of kan dat ook anders?
Code (php)
Toevoeging op 26/05/2014 01:36:44:
Ook zou je de arrays kunnen samenvoegen als je dat zou willen
test2:80%
test:50%
Als we even dit als voorbeeld nemen zou ik eerder iets willen in de stijl van test2, test als output voor de naam en 80%, 50% als output voor het niveau. Zo ga ik dat dan ook opslaan in de db. Ik heb in de db veld naam en veld niveau. Later zou ik dan de gegevens uit de db willen halen en terug samenvoegen. De eerste waarde uit het veld naam komt dan overeen met de eerste waarde uit het veld niveau. Alleen zie ik dat samenvoegen achteraf natuurlijk niet. Ik weet dus ook niet of het kan. Misschien zijn er ook nog andere manieren om dit op te lossen?
Gewijzigd op 27/05/2014 12:08:10 door Brecht S
Kan iemand mij hier mee helpen?
Is er nog iemand die mij hiermee verder kan helpen?