foreache meerder waardens
Ik ben een formulier aan het maken waar de gebruiker het onderwerp, locatie en omschrijving d.m.v. een input en textarea kan invullen. Dit alles staat achter elkaar en herhaald zich 8 keer.
Voorbeeld: ( en dan 8 x onder elkaar :D)
<tr>
<td valign="top"><input type="text" name="onderwerp[1]" /></td><td valign="top"><input type="text" name="locatie[1]" /></td><td valign="top"><textarea cols="20" rows="4" name="omschrijving[1]"></textarea></td>
</tr>
Is het ook mogelijk d.m.v. een foreach deze velden per regel uit te lezen?
Zelf dacht ik iets aan:
Code (php)
Dit hier boven gaat natuurlijk nooit werken, maar is er z`n oplossing?
Ik wil dus dat de foreach regel bij regel houd! zodat ik dat ook op die manier kan opslaan in een Database.
Thanks alvast :D
Ruliezz
Gewijzigd op 01/01/1970 01:00:00 door Ruliezz
Begrijp ik het goed dat je de regels van het textvak apart wilt opslaan in de db?
Als goed is kan dat met explode()
Gewijzigd op 01/01/1970 01:00:00 door johan
Dus:
onderwerp, locatie en omschrijving zijn 3 losse items maar moeten wel als 1 regel worden weergegeven in de database, dus dat ze 1 id hebben.
En dit moet zich herhalen voor elke regel dus 8 x in mijn geval.
Code (php)
1
2
3
2
3
<?php
mysql_query("INSERT INTO tabel WHERE id, onderwerp, locatie, beschrijving VALUES '','".mysql_real_escape($_POST['onderwerp'])."','".mysql_real_escape($_POST['locatie']).'",'".mysql_real_escape($_POST['beschrijving'])."'");
?>
mysql_query("INSERT INTO tabel WHERE id, onderwerp, locatie, beschrijving VALUES '','".mysql_real_escape($_POST['onderwerp'])."','".mysql_real_escape($_POST['locatie']).'",'".mysql_real_escape($_POST['beschrijving'])."'");
?>
en dat gewoon in een loopie waarin je kijkt of er gepost is, en dan elke keer deze query
En waar voor dient die mysql_real_escape??
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
function opslanInTb($onderwerp, $locatie, $omschrijving){
mysql_query("INSERT INTO tabel (onderwerp, locatie, beschrijving) VALUES ('". mysql_real_escape($_POST['onderwerp']) ."',
'". mysql_real_escape($_POST['locatie']) ."',
'". mysql_real_escape($_POST['beschrijving']) ."')");
}
if (isset($_POST['submit'])){
for ($i=0; $i < 8; $i++){
if ($_POST["onderwerp". $i] !="" AND $_POST["locatie". $i]!="" AND $_POST["omschrijving". $i] != "")
opslanInTb($_POST["onderwerp". $i], $_POST["locatie". $i], $_POST["omschrijving". $i]);
}
}
echo '<table border="1">';
echo '<form name="test" method="post" action="'. $_SERVER['PHP_SELF'] .'">';
for ($i=0; $i < 8; $i++){
echo '<tr>';
echo '<td><input type="text" name="onderwerp'. $i .'" /></td>';
echo '<td><input type="text" name="locatie'. $i .'" /></td>';
echo '<td><textarea cols="20" rows="4" name="omschrijving'. $i .'"></textarea></td>';
echo '</tr>';
}
echo '<tr>';
echo '<td ><input type="submit" name="submit" value="verzenden"/></td> ';
echo '</tr>';
echo '</form></table>';
?>
function opslanInTb($onderwerp, $locatie, $omschrijving){
mysql_query("INSERT INTO tabel (onderwerp, locatie, beschrijving) VALUES ('". mysql_real_escape($_POST['onderwerp']) ."',
'". mysql_real_escape($_POST['locatie']) ."',
'". mysql_real_escape($_POST['beschrijving']) ."')");
}
if (isset($_POST['submit'])){
for ($i=0; $i < 8; $i++){
if ($_POST["onderwerp". $i] !="" AND $_POST["locatie". $i]!="" AND $_POST["omschrijving". $i] != "")
opslanInTb($_POST["onderwerp". $i], $_POST["locatie". $i], $_POST["omschrijving". $i]);
}
}
echo '<table border="1">';
echo '<form name="test" method="post" action="'. $_SERVER['PHP_SELF'] .'">';
for ($i=0; $i < 8; $i++){
echo '<tr>';
echo '<td><input type="text" name="onderwerp'. $i .'" /></td>';
echo '<td><input type="text" name="locatie'. $i .'" /></td>';
echo '<td><textarea cols="20" rows="4" name="omschrijving'. $i .'"></textarea></td>';
echo '</tr>';
}
echo '<tr>';
echo '<td ><input type="submit" name="submit" value="verzenden"/></td> ';
echo '</tr>';
echo '</form></table>';
?>
jah idd, dit is inderdaad wat ik wil. Maar kan dit ook met een foreach of is dit de enigste oplossing?
Een lus blijf een lus
Alleen alle lus heb zijn eigen extra mogelijkheden
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
foreach($_POST['naam'] as $key => $value)
{
echo $_POST['naam'][$key] . ' | ' . $_POST['email'][$key] . ' | ' . $_POST['adres'][$key] . '<br />';
}
}
else
{
echo '<form method="post">';
for($i=0; $i<8; $i++)
{
echo '<input type="text" name="naam[' . $i . ']" /> | ';
echo '<input type="text" name="email[' . $i . ']" /> | ';
echo '<input type="text" name="adres[' . $i . ']" /><br />';
}
echo '<br /><input type="submit" name="submit" value="Opslaan" />';
echo '</form>';
}
?>
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
foreach($_POST['naam'] as $key => $value)
{
echo $_POST['naam'][$key] . ' | ' . $_POST['email'][$key] . ' | ' . $_POST['adres'][$key] . '<br />';
}
}
else
{
echo '<form method="post">';
for($i=0; $i<8; $i++)
{
echo '<input type="text" name="naam[' . $i . ']" /> | ';
echo '<input type="text" name="email[' . $i . ']" /> | ';
echo '<input type="text" name="adres[' . $i . ']" /><br />';
}
echo '<br /><input type="submit" name="submit" value="Opslaan" />';
echo '</form>';
}
?>
Alleen begint jou for-loop bij 0 :)
Bedankt allemaal! Ik ga het toepassen! :D
Dennis Mertens schreef op 01.04.2009 15:17:
Alleen begint jou for-loop bij 0 :)
Dus?
Een array begint standaard ook bij 0.
En anders doe je zo:
for($i=1; $i<=8; $i++)
brie schreef op 01.04.2009 15:31:
Dus?
Een array begint standaard ook bij 0.
En anders doe je zo:
for($i=1; $i<=8; $i++)
:( *zucht*Dennis Mertens schreef op 01.04.2009 15:17:
Alleen begint jou for-loop bij 0 :)
Dus?
Een array begint standaard ook bij 0.
En anders doe je zo:
for($i=1; $i<=8; $i++)
Ga niet blij lopen doen ok?
Ik wijs hem er even op. Aangezien hij bij 1 begon in het topic bericht.
Quote:
Ik weet het lekker beter meneer :(
Gewijzigd op 01/01/1970 01:00:00 door Dennis Mertens