Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP AJAX Datum

Einklappen

Neue Werbung 2019

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

  • PHP AJAX Datum

    Hallo,

    ich bekomme von einer AJAX Abfrage einige Daten einer SQL Abfrage zurück. Darunter ist auch ein Datum, welches ich auf das Input Feld in der PHP File schreiben möchte. Leider klappt das bei dem Datum nicht.

    Wie muss ich das formatieren?


    Ajax Anweisung
    PHP-Code:
    function fnopenModaloBelegungEdit(BelegungSelectID){

            $.
    ajax({
            
    type"POST",
            
    url"function.php",
            
    data:{BelegungSelectID:BelegungSelectID},
            
    dataType:"json",
            
    success:function(data){
                           $(
    '#inputEditoffeneBegin').val(data.Beginn);
                           $(
    '#inputEditoffeneEnde').val(data.Ende);
                           $(
    '#inputEditoffeneTrErgb1').val(data.TrErgb1);
                           $(
    '#inputEditoffeneTrErgb2').val(data.TrErgb2);
                           $(
    '#inputEditoffeneTrErgb3').val(data.TrErgb3);
                           $(
    '#inputEditoffeneTrErgb4').val(data.TrErgb4);
                           $(
    '#inputEditoffeneTrErgb5').val(data.TrErgb5);
                           $(
    '#inputEditoffeneTrErgb6').val(data.TrErgb6);
                           $(
    '#inputEditoffeneTrErg6Gesamt').val(data.TrErgbGesamt);
                           $(
    '#inputVerein').val(data.vereinName);
                           $(
    '#inputStand').val(data.standBezKurz);
                           $(
    '#inputPlatz').val(data.Platz_Stand);
                           $(
    '#inputWaffekT').val(data.waffenKurzT);
                           $(
    '#offeneEditID').val(data.ID);
                         $(
    "#modalOffeneBelegung").modal('show');
                                },
          
    error: function(){
                            
    alert("Error");
                                  }
                                });
                            } 
    betroffendes Input Feld
    PHP-Code:
      <div class="form-group col-md-6">
                        <
    label for="inputEditoffeneBegin">Begin</label>
                        <
    input type="datetime-local" class="form-control" id="inputEditoffeneBegin" name="inputEditoffeneBegin" readonly>
                      </
    div

    Funktion
    PHP-Code:
    // Select Belegung

    if(isset($_POST["BelegungSelectID"]))
           {
             
    $BSid mysqli_real_escape_string($connection, ($_POST["BelegungSelectID"]));

            
    $query "SELECT `tbl_Verein`.`vereinName`, `tbl_staende_Verein`.`standBezKurz`, `tbl_schiessbuch`.*, `tbl_waffen`.`waffenKurzT`
                      FROM `tbl_Verein`
                      LEFT JOIN `tbl_staende_Verein` ON `tbl_staende_Verein`.`FK_Verein` = `tbl_Verein`.`ID`
                      LEFT JOIN `tbl_schiessbuch` ON `tbl_schiessbuch`.`FK_Stand` = `tbl_staende_Verein`.`ID`
                      LEFT JOIN `tbl_waffen` ON `tbl_schiessbuch`.`FK_Waffen` = `tbl_waffen`.`ID`
                      Where `tbl_schiessbuch`.`ID` = '"
    .$BSid."'";

              
    $result mysqli_query($connection$query);
              
    $row mysqli_fetch_array($result);
              echo 
    json_encode($row);
         } 

  • #2
    Doku lesen?

    The format of the date and time value used by this input type is described in Local date and time strings in Date and time formats used in HTML.
    https://developer.mozilla.org/en-US/...datetime-local

    Kommentar


    • #3
      datetime-local ist noch recht beschränkt funktionabel:

      https://caniuse.com/#search=datetime-local

      Kommentar


      • #4
        Jetzt ja

        Wenn ich auf "Text" umstelle, sehe ich wenigstens was da ankommt. Aber um es richtig darzustellen muss ich es ja formatieren. Da hänge ich gerade.
        Theoretisch müsste ich das doch im Ajax machen, wenn er mir die Variable zurück in das Feld schreibt. Lasse ich dann dort die Sekunden weg, müsste es auch mit Datetime-local gehen?!

        Kommentar


        • #5
          input type="datetime-local"
          Die Unterstützung von den Browerherstellern ist eher mangelhaft, weshalb ich diesen Typ nicht verwenden würde. Firefox fällt da dann auf den Typ text zurück, was eher schlechter als besser macht. Da du das Feld aber auf readonly gesetzt hast, dürfte das zumindest für den Anwender egal sein.

          Wenn du in ein Inputfeld was reinschreiben willst, darf es nicht auf readonly stehen.
          Du kannst es mit Javascript vorab abschalten
          HTML-Code:
          document.getElementById('InputFieldID').readOnly = false;
          Dann reinschreiben und danach die Eigenschaft readOnly wieder auf true setzen.

          N.B.
          `tbl_Verein`.`vereinName`
          zeigt sehr schön wie unsinnig deine Namensvergabe ist.
          Warum nicht
          `verein`.`name`

          waffenKurzT
          Wer`s kompliziert mag.

          Kommentar


          • #6
            Entweder, es ist für mich zu spät oder wir reden aneinander vorbei.
            Also die readyonly Felder sind bei mir beschrieben. Passiert auch nichts anderes, wenn ich es weglasse. Vielleicht ist da auch Browser abhängig.

            Selbst wenn das Datumsfeld testweise auf text steht und nun das Datum in der Form, wie es aus der Datenbank kommt, drin steht. Habe ich es immer noch nicht richtig formatiert.

            Das war meine ursprüngliche Frage, wie ich am besten das Datum so formatieren, dass es für uns deutsche im richtigen Format steht.

            Kommentar


            • #7
              In deinem SQL gibt es keine Feld mit Datum wenn ich das richtig sehe.
              Code:
              "SELECT `tbl_Verein`.`vereinName`, `tbl_staende_Verein`.`standBezKurz`, `tbl_schiessbuch`.*, `tbl_waffen`.`waffenKurzT`
                                FROM `tbl_Verein`
                                LEFT JOIN `tbl_staende_Verein` ON `tbl_staende_Verein`.`FK_Verein` = `tbl_Verein`.`ID`
                                LEFT JOIN `tbl_schiessbuch` ON `tbl_schiessbuch`.`FK_Stand` = `tbl_staende_Verein`.`ID`
                                LEFT JOIN `tbl_waffen` ON `tbl_schiessbuch`.`FK_Waffen` = `tbl_waffen`.`ID`
                                Where `tbl_schiessbuch`.`ID` = '".$BSid."'"
              du kannst es aber schon formatiert ausgeben lassen.
              https://dev.mysql.com/doc/refman/8.0...on_date-format

              Kommentar


              • #8
                Zitat von protestix Beitrag anzeigen
                In deinem SQL gibt es keine Feld mit Datum wenn ich das richtig sehe.
                Code:
                "SELECT `tbl_Verein`.`vereinName`, `tbl_staende_Verein`.`standBezKurz`, `tbl_schiessbuch`.*, `tbl_waffen`.`waffenKurzT`
                FROM `tbl_Verein`
                LEFT JOIN `tbl_staende_Verein` ON `tbl_staende_Verein`.`FK_Verein` = `tbl_Verein`.`ID`
                LEFT JOIN `tbl_schiessbuch` ON `tbl_schiessbuch`.`FK_Stand` = `tbl_staende_Verein`.`ID`
                LEFT JOIN `tbl_waffen` ON `tbl_schiessbuch`.`FK_Waffen` = `tbl_waffen`.`ID`
                Where `tbl_schiessbuch`.`ID` = '".$BSid."'"
                du kannst es aber schon formatiert ausgeben lassen.
                https://dev.mysql.com/doc/refman/8.0...on_date-format
                Ich hatte mir es jetzt auch schon von der DB formatiert ausgeben lassen

                Kommentar

                Lädt...
                X