login  Naam:   Wachtwoord: 
Registreer je!
 Forum

dubbel uitlezen van post data met foreach (Opgelost)

Offline ray1971 - 29/11/2012 00:51 (laatste wijziging 29/11/2012 16:04)
Avatar van ray1971Lid Ben voor het eerst bezig om multidimensionale post data met een foreach uit telezen om deze daarna met een while loop in mijn database te plaatsen.
om stapsgewijs tekijken of het geen ik wil goed gaat. echo ik nu de foreach loop. nu krijg ik 2x de verzonden data waar ik het eenkeer had verwacht.
ik kom er maar niet achter waar het fout gaat.

Hierbij de code tot nu toe:
  1. if(isset($_POST['plannen'])&& $_POST['plannen']=='afspraak' )
  2. {
  3. $array='';
  4. $datum=$_POST['dag']."-".$_POST['maand']."-".$_POST['jaar'];
  5. foreach ($_POST as $a=>$error)
  6. {
  7. if ($error == 0)
  8. {
  9. foreach ($_POST['klant']['id'] as $a=>$error)
  10. {
  11. $id= $_POST['klant']['id'][$a];
  12.  
  13.  
  14. $tijd= $_POST['klant']['tijd'][$a];
  15. $info= $_POST['klant']['extra_info'][$a];
  16.  
  17.  
  18. $array.="<p>".$datum." ".$id." ".$tijd." ".$info."</p><br>\n";
  19.  
  20. }
  21.  
  22. }


$_post dump: Array ( [dag] => 29 [maand] => 11 [jaar] => 2012 [plannen] => afspraak [Submit] => Afspraak plannen [klant] => Array ( [id] => Array ( [13048] => 13048 ) [tijd] => Array ( [13048] => 1 [04957] => 1 [08143] => 1 ) [extra_info] => Array ( [13048] => [04957] => [08143] => ) ) ) 1

Dump: van eerste foreach: dagmaandjaarplannenSubmitklant
Dump: tweede foreach :14171141721415514158Submit14171141721415514158klant

Dump per post variable:

29-11-2012 14171 1
29-11-2012 14172 1
29-11-2012 14155 1
29-11-2012 14158 1

29-11-2012 14171 1
29-11-2012 14172 1
29-11-2012 14155 1
29-11-2012 14158 1

Het gebruikte formulier:

  1. echo"<FORM action=\"".htmlentities($_SERVER['REQUEST_URI'])."\" method=\"POST\"><table><tr><td colspan=\"6\">Leverdatum ingeven :";
  2. echo dropdownbox_Datum();
  3. echo "<input type=\"hidden\" name=\"plannen\" value=\"afspraak\"/><INPUT type=\"submit\" name=\"Submit\" value=\"Afspraak plannen\">";
  4. echo"</td></tr>";
  5. echo"<tr><td>kies</td><td>Kwitantie Nummer</td><td>Order Datum</td><td>Naam & Adres</td><td>Basis levertijd</td><td>Extra info</td></tr>";
  6.  
  7. while ($row = mysql_fetch_array($sql))
  8. {
  9. $kw_nr=explode(" ", $row['kwit_nr']);
  10. echo "<tr><td> <INPUT TYPE=\"checkbox\" NAME=\"klant[id][".$row['kwit_id']."]\" VALUE=\"".$row['kwit_id']."\"> </td><td><b>". $kw_nr[0]."</b> </td><td> ".$row['kwit_datum'] ." </td>
  11. <td> ".$row['klant_naam']."
  12. <br />".$row['klant_adres']."
  13. <br />".$row['klant_postcode']." ".$row['klant_woonplaats']."
  14. <br />".$row['klant_telefoon2']."
  15. <br />".$row['klant_telefoon2']."</td><td>
  16. HD: <INPUT type=\"radio\" name=\"klant[tijd][".$row['kwit_id']."]\" value=\"1\" checked><br />
  17. VM: <INPUT type=\"radio\" name=\"klant[tijd][".$row['kwit_id']."]\" value=\"2\"><br />
  18. NM: <INPUT type=\"radio\" name=\"klant[tijd][".$row['kwit_id']."]\" value=\"3\">
  19. </td><td>
  20. <TEXTAREA NAME=\"klant[extra_info][".$row['kwit_id']."]\" ROWS=\"4\" COLS=\"50\"></TEXTAREA>
  21. </td></tr>\n";
  22.  
  23. }
  24. echo"</table></form>";


4 antwoorden

Gesponsorde links
Offline marten - 29/11/2012 08:27
Avatar van marten Beheerder Wil je een dump van je $_POST maken?
Offline Martijn - 29/11/2012 10:22
Avatar van Martijn Crew PHP op regel 5 en op regel 9 zet je alletwee $a en $error. In een nested foreach moet je nooit twee keer dezelfde variabelnamen gebruiken.
Offline ray1971 - 29/11/2012 17:38
Avatar van ray1971 Lid
marten schreef:
Wil je een dump van je $_POST maken?


$_post dump:
Array (
[dag] => 29
[maand] => 11
[jaar] => 2012
[plannen] => afspraak
[Submit] => Afspraak plannen
[klant] => Array (
[id] => Array (
[13048] => 13048 )
[tijd] => Array (
[13048] => 1
[04957] => 1
[08143] => 1 )
[extra_info] => Array (
[13048] =>''
[04957] =>''
[08143] =>''
) ) ) 1

Offline marten - 30/11/2012 08:44
Avatar van marten Beheerder Je eerste foreach (regel 5) is raar opgebouwd. Je wilt toch gewoon de klanten hebben die bij een bepaalde dag / maand / jaar horen?

  1. foreach ($_POST['klant'] as $aKlantInfo) {
  2. echo $aKlantInfo['id']; // deze snap ik even niet, kan een klant meerdere id's hebben?
  3.  
  4. //eventueel een foreach voor je tijd ($aKlantInfo['tijd']
  5.  
  6. //eventueel een foreach voor je extra info ($aKlantInfo['extra_info']
  7. }


met foreach ($_POST['klant'] as $aKlantInfo) werk je gelijk met de value

met foreach ($aKlantInfo['tijd'] as $key => $value) kan je gaan werken met de key en de value.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.223s