Ankündigung

Einklappen
Keine Ankündigung bisher.

mehrdimensionales php Array mit jquery each auslesen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mehrdimensionales php Array mit jquery each auslesen

    Hallo zusammen,

    ich bastle mir gerade einen Kalender. Das Anzeigen der Termine funktioniert nur wenn ich mehrere Termine an einem Tag habe funnktioniert es noch nicht.

    Hier werden die Termine gesammelt.

    PHP-Code:
        $event[] =   array( "id" => $row['id'],
                                            
    "start_time" => $start_time,
                                            
    "end_time" => $end_time,
                                            
    "eventtext" => $row['event'],
                                            
    "fix_opt" => $row['fix_opt']
                                                                        ); 
    Hier wird das Array für den jeweilgen Tag angelegt. $tag_start ist immer das jeweilige Datum

    PHP-Code:
    $array[$tag_start] = array( "datum" => $tag,
    "wochentag" => $wochentag_day,
    "termine" => ''

    ); 
    Jetzt wollte ich in die Termine in den Tag einfügen.

    PHP-Code:
    for($i 0$i <count($event); $i++) {
                        
    $array[$tag_start]['termine'] = array (
                                     
    $i =>     array(     "id" => $event[$i]['id'],
                                            
    "start_time" => $event[$i]['start_time'],
                                            
    "end_time" =>$event[$i]['end_time'],
                                            
    "eventtext" => $event[$i]['eventtext'],
                                            
    "fix_opt" => $event[$i]['fix_opt']
                                        )    
                                        );
                    } 

    Hier werden die Termine ausgelsesen. Leider kann ich auf die Einzelnen Termine nicht zugreifen. Der Tag und der Wochentag kommen aber.

    Code:
        $.getJSON('../../scripte/public/php/functions_test?&kalender_ausgabe=ausgabe',
                         {
                        monat: '',
                        jahr: '',
                        },  
                    function(data) {
    
                            $.each(data, function(key, val) {
                                     if (heute ==  val.datum) {
                                        $('#kalender').append( '<tr bgcolor="#6495ED"><td> <b>' + val.datum + '</b></td><td > ' + val.wochentag + '</b></td><td> ' + val.termine.id + ' ' + val.termine.start_time + '-' + val.termine.end_time + '' + val.termine.eventtext + '</td></tr>' );              
                                    }
    
                                     if (heute !=  val.datum) {
                                         $('#kalender').append( '<tr><td><b>' + val.datum + '</b></td><td > ' + val.wochentag + '</b></td><td > ' + val.termine.termine.id + ' ' + val.termine.termine.start_time + '-' + val.termine.termine.end_time + '' + val.termine.termine.eventtext + '</td></tr>' );              
                                    }
    
                            });
                    //Alle ungeraden werden grün        
                    $( "tr:odd" ).css( "background-color", "#4CAF50" );
                    });
    Wie kann ich auf die Termine zugreifen oder wo ein Denkfehler drin ?

    lg Joachim

  • #2
    Poste doch mal die Daten, die im Browser ankommen.

    Kommentar


    • #3
      Hallo Dormilich,

      ich muss glaube ich nur noch eine Funktion zum auslesen einbauen. Nur wie mache ich das genau ? Die eine $.each Funktion läuft wunderbar. Wenn ich aber auf die Termine zurgreifen möchte zeigt er mir immer nur den letzten an.

      Ein Dank für jeden Tipp

      Code:
      $.getJSON('../../scripte/public/php/functions_test?&kalender_ausgabe=ausgabe',
                           {
                          monat: $('#monat').val(),
                          jahr: $('#jahr').val(),
                          },  
                      function(data) {
      
                              $.each(data, function(key, val) {
      
                                  var termine_tag =  val.termine;
                                  //Prüfung der Variable auf Inhalt
                                  var inpObj = val.termine.id;
                                  if (inpObj != '') {
                                      var termine_id = val.termine.id;
                                      }
                                  else
                                  {
                                      var termine_id =  '';
                                  }    
      
                                  var inpObj = val.termine.start_time;
                                  if (inpObj != '') {
                                      var start_time = val.termine.start_time;
                                      }
                                  else
                                  {
                                      var start_time =  '';
                                  }
      
                                  var inpObj = val.termine.end_time;
                                  if (inpObj != '') {
                                      var end_time = val.termine.end_time;
                                      }
                                  else
                                  {
                                      var end_time =  '';
                                  }
      
                                  var eventtext = val.termine.eventtext;
                                  if (eventtext == '') {
                                       eventtext =  '';
                                      }
                                  else
                                  {
                                       eventtext = val.termine.eventtext;
                                  }
      
                                  content += '<tr>';
                                  content += '<td>';
      
                                   if (val.datum_anzahl == heute) {
                                      content += '<div class="heute"><b>' + val.datum + '</b></div>';
                                  }
                                  else
                                  {
                                      content += '<b>' + val.datum + '<b>';
                                  }
      
      
                                  content += '</td>';
                                  content += '<td>';
                                  content += '<b>' + val.wochentag + '</b>';
                                  content += '</td>';
                                  content += '<td>';
      
                                   if (termine_id != '') {
                                      content += '<div class="kalender_event_oeffnen"><div class="kalender_id">' + termine_id + '</div></div>';
                                      }
      
                                  content += '</td>';
                                  content += '<td>';
                                  content += ''+ start_time + ' ' + end_time + ' ' + eventtext + '';
                                  content += '</td>';
                                  content += '<td>';
      
                                  if (termine_id != '') {
                                      content += '<div class="kalender_event_loeschen"><div class="kalender_id">' + termine_id + '</div></div>';
                                  }
                                  content += '</td>';
      
           $.each(val, function(termine, value) {
                                        content += '<td>' + value.id;
                                         });
      
      
                              });
      
                      content += "</table>"
      
                      $('#kalender').append(content);
                      //Alle ungeraden werden grün        
                      $( "tr:odd" ).css( "background-color", "#4CAF50" );
                      });
      Hier das PHP File
      PHP-Code:

      if  ( $_GET['kalender_ausgabe'] == "ausgabe")  
              {    
                  
      $array = array();
                  
      $ftag = array();



                      
      $sql "SELECT * FROM `db_kalender`
                              WHERE `date` = '" 
      $datum_anzahl "'
                              AND `firmen_id` = " 
      $firmen_id "";

                      
      $db_erg mysqli_query($db$sql );

                      
      $row_cnt mysqli_num_rows($db_erg);

                      if (
      $row_cnt != '0')
                      {

                      while (
      $row mysqli_fetch_array$db_ergMYSQL_ASSOC))
                      {
                          list(
      $hh,$mm,$ss) = explode(":",$row['start_time']);
                          
      $start_time $hh ':' $mm;

                          list(
      $hh,$mm,$ss) = explode(":",$row['end_time']);
                          
      $end_time $hh ':' $mm;

                          
      $event[] =   array( "id" => $row['id'],
                                              
      "start_time" => $start_time,
                                              
      "end_time" => $end_time,
                                              
      "eventtext" => $row['event'],
                                              
      "fix_opt" => $row['fix_opt']
                                                                          );

                          
      //$event[] = $start_time .'-' . $end_time . ' ' . $row['event'] . ' ' . $row['fix_opt'];
                          //sort($event);
                      
      }
                      }


                      
      $sql "SELECT * FROM `kontakte`
                              WHERE MONTH( geb_datum ) = '" 
      $monat "'
                              AND DAY( geb_datum ) = '" 
      $tag_start "'
                              AND `firmen_id` = " 
      $firmen_id "";

                      
      $db_erg mysqli_query($db$sql );

                      
      $row_cnt mysqli_num_rows($db_erg);

                      if (
      $row_cnt != '0')
                      {

                      while (
      $row mysqli_fetch_array$db_ergMYSQL_ASSOC))
                      {
                          
      $event[] =   array( "id" => '',
                                              
      "start_time" => '',
                                              
      "end_time" =>'',
                                              
      "eventtext" => 'Geb ' $row['vorname'] . ' ' $row['name'],
                                              
      "fix_opt" => ''

                                          
      );

                          
      //$geb = 'Geb ' . $row['vorname'] . ' ' . $row['name'];
                          //array_unshift($event, $geb);
                      
      }
                      }



                      
      //Durchsucht das Array und gibt den Key aus
                      //if(in_array($datum_mktime, $ftag)) {
                      //$feiertag = array_search($datum_mktime, $ftag);  
                      //    array_unshift($event, $feiertag);
                      //}


                      //Der Eintrag für den Kalender wird erstellt
                      
      $array[$tag_start] =   array( "datum" => $tag,
                                          
      "wochentag" => $wochentag_day,
                                          
      "datum_anzahl" => $datum_anzahl,
                                          
      "termine" => ''

                                          
      );

                      
      //Es wird ermittelt ob es Einträge für diesen Tag gibt
                      
      $event_count count($event);    

                      if(
      $event_count != '0')
                      {
                      for(
      $i 0$i <count($event); $i++) {
                          
      $array[$tag_start]['termine'] = array(     "id" => $event[$i]['id'],
                                              
      "start_time" => $event[$i]['start_time'],
                                              
      "end_time" =>$event[$i]['end_time'],
                                              
      "eventtext" => $event[$i]['eventtext'],
                                              
      "fix_opt" => $event[$i]['fix_opt']
                                          );
                      }
                      }
                      else
                      {


                          
      $array[$tag_start]['termine'] = array(     "id" => "",
                                              
      "start_time" => "",
                                              
      "end_time" =>"",
                                              
      "eventtext" =>"",
                                              
      "fix_opt" => ""
                                          
      );
                      }

                      
      //der nächste Tag wird ermittelt
                      
      $tag_start++;
                  }

                  echo 
      json_encode($array);

                  } 

      Kommentar


      • #4
        Nur wie mache ich das genau ? Das php Array wird richtig übergeben soweit ich das sehe.
        da nur du das Array kennst, kann ich dir das nicht sagen.

        Hier das PHP File
        ist für das Problem irrelevant, weil es dem JS absolut egal ist, wer die Daten wie zusammenbaut.

        Kommentar

        Lädt...
        X