Ankündigung

Einklappen
Keine Ankündigung bisher.

Inhalt von Tabellen Zelle mit Ajax

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

  • Inhalt von Tabellen Zelle mit Ajax

    Hallo Leute,

    seit nun 2 Tagen versuche ich das ich den Inhalt der Zelle ID bekomme.
    Ich bekomme aber immer nur die erste und nicht die auf die geklickt wurde.

    So wird die Tabelle erstellt und per ajax abgerufen:

    PHP-Code:
    public function get_Table()
       {
          
    $Data = NEW Test_Model;
          
    $Data $Data->get_Table();

          
    $Out '';

          foreach (
    $Data as $key => $value)
          {
             
    $Out .= '<tr>' .
                         
    '<td>' $value['Lang'] . '</td>' .
                         
    '<td>' $value['Bereich'] . '</td>' .
                         
    '<td>' $value['Placeholder'] . '</td>' .
                         
    '<td>' $value['Text'] . '</td>' .
                         
    '<td>' '<div class = "Edit">' $value['ID'] . '</div>' '<div class = "Delete">' $value['ID'] . '</div>' '</td>' .
                      
    '</tr>';
          }  

          echo 
    json_encode(array('tabelle' => $Out));
       } 

    Dieses JQuery sorgt dafür das eine Edit Box aus und eingeblenet wird, Zeigt die Tabelle an und soll sich um die Klick funktion kümmern:

    Code:
    $(document).ready(function()
    {
       $('#box').hide();
    
       $.ajax
       ({
          type: "GET",
          url: 'index.php?goto=AJAX_Test/get_Table/',
          data : {'User_ID':$('.Edit').html()},
          dataType: 'json',
          encode: true
       })
    
       .done(function(data)
       {
          $(data.tabelle).insertAfter("tbody");
    
          $('.Edit').click(function()
          {
    
             get_text();
             get_overlay();
    
    
          });
       });
    
       function get_text()
       {     
          $.ajax
          ({
             type: "GET",
             url: 'index.php?goto=AJAX_Test/get_Text/',
             data : {'Table_ID' : $('.Edit').html()},
             dataType: 'json',
             encode: true
          })
    
          .done(function(data)
          {
             $('#Table_ID').val(data.ID);
             $('#Lang').val(data.Lang);
             $('#Bereich').val(data.Bereich);
             $('#Placeholder').val(data.Placeholder);
             $('#Text').val(data.Text);
          })
    
          .fail(function(data)
          {
             // Aktionen bei einem Fehler
             console.warn('done: '+data.toSource());
             console.log('fail');
             console.error(data);
          });
       }
    
       function get_overlay()
       {
          $('#overlay').fadeIn('fast',function()
          {
             $('#box').show();
          });
    
          $('#boxclose').click(function()
          {
             $('#box').hide();
             {
                $('#overlay').fadeOut('fast');
             };
          });
    
          $(document).keyup(function(e)
          {
             if (e.keyCode === 27)
             {
                $('#box').hide();
                {
                   $('#overlay').fadeOut('fast');
                };
             }   
          });
    
          $(window).click(function(event)
          {
             if (event.target === overlay)
             {
                $('#box').hide();
                {
                   $('#overlay').fadeOut('fast');
                };
             }
          });
       }
    
       $(".Edit_Text").submit(function(event)  
       {
          event.preventDefault();
    
          $.ajax
          ({
             type: "GET",
             url: 'index.php?goto=AJAX_Test/Edit_Text/',
             data : $(".Edit_Text").serialize(),
             dataType: 'json',
             encode: true
          })
    
          .done(function(data)
          {
    
          })
    
          .fail(function(data)
          {
             // Aktionen bei einem Fehler
             console.warn('done: '+data.toSource());
             console.log('fail');
             console.error(data);
          });
    
       });
    });
    Beim 2ten Ajax wo
    Code:
    data : {'Table_ID' : $('.Edit').html()},
    steht ist mein Problem.

    Ich habe es schon mit this und text versucht aber da bekomme ich entweder keine ID oder die Box geht nicht auf.

    Kann mir Bitte jemand auf die sprünge helfen.

    Danke und Gruß
    René


  • #2
    Laut Doku bekommst du bei einem Getter-Aufruf eines jQuery-Objekts mit mehreren Elementen ($('.Edit').html()) immer nur das Ergebnis des ersten Elements!

    In an HTML document, .html() can be used to get the contents of any element. If the selector expression matches more than one element, only the first match will have its HTML content returned.
    Ich habe es schon mit this und text versucht aber da bekomme ich entweder keine ID oder die Box geht nicht auf.
    this hat in der aufgerufenen Funktion nicht den von dir gewünschten Kontext => Scope

    Du musst der Funktion das richtige Ziel als Parameter übergeben.

    Kommentar


    • #3
      Ok

      und nach was soll ich nun googeln damit ich verstehe wie ich das mache?

      Hast du noch einen Tip für mich ?

      Gruß
      René

      Kommentar


      • #4
        und nach was soll ich nun googeln damit ich verstehe wie ich das mache?
        Scope, Funktionen, Event Handling

        z.B.
        https://developer.mozilla.org/de/doc...Operators/this

        bzw. https://developer.mozilla.org/de/docs/Web/JavaScript

        Kommentar


        • #5
          Ehrlich gesagt ich gebe auf ich verstehe das nicht.

          PHP und zugleich noch JS / Jquery ist mir glaube ich gerade zu viel.

          Alles was ich Lese und dann Teste für entweder zu "ist keine Funktion" oder "kein Skope" oder es macht einfach nichts.

          Wenn einer die Lösung hat sehr gerne ansonsten setzte ich das mit php um und ix AJAX ist nicht schön geht aber auch.

          Gruß ein gefrusteter
          René

          Kommentar

          Lädt...
          X