jQuery - bir değişken içine Fonksiyon Sonuç kaydet

3 Cevap php

Ben bir veritabanından bir seçme yükler bu işlevi var.

function Competition() {
    $(document).ready(function() {
        $.ajax({
	        url: "load-comp.php",
	        cache: false,
	        success : function(html) {
	            // something here
	        }
	    });
        EditRow();
    });
}

Ben (ikinci td olarak) confirmEdit içinde bu seçeneğini koymak gerekir.

EditRow() {
    var confirmEdit = '<tr class="editable" id=" '+ id +' ">
                         <td><input type="text" value="' + name + '" /></td>
                         <td> ' + /* function result goes here */ + ' </td>
                         <td><input type="text" value="' + data + '" /></td>
                         <td>' + saveCancel + '</td>
                       </tr>';
}

Peki nasıl bu yüzden EditRow () fonksiyonu kullanabilirsiniz bir değişkeni içinde Yarışması'nda () fonksiyonu tarafından üretilen sonucu kaydedebilirim?

3 Cevap

function Competition() {
    $(document).ready(function() {
        $.ajax({
                url: "load-comp.php",
                cache: false,
                success : function(html) {
                    EditRow(html);
                }
            });
    });
}

Ryan'ın açıklama doğrudur. Yük comp.php alınmadan önce orijinal EditRow denilen olabilir.

Veri "html" değişken adı load-comp.php geri geliyor. Yani EditRow işlevini değiştirmek ve onu geçebileceği "html" değişkeni (siz de o diğer değişkenleri gerekebilir)

function EditRow(html, id, name, data, saveCancel) {
var confirmEdit = '<tr class="editable" id=" '+ id +' ">
                         <td><input type="text" value="' + name + '" /></td>
                         <td> ' + html + ' </td>
                         <td><input type="text" value="' + data + '" /></td>
                         <td>' + saveCancel + '</td>
                       </tr>';

}

Ajax tanımı, asenkron tarafından, olduğunu. Ajax çağrı tamamlanmadan önce EditRow olarak adlandırılabilir. Neden Ajax aramanın başarısı fonksiyonu EditRow için çağrı koymak değil mi? Yani fonksiyon, sadece Ajax tamamlanmasından sonra çağrılır garanti edemez tek yolu bu. Bunu yaptığınızda, o zaman sadece EditRow işlevi için parametre olarak sonucu iletebilirsiniz.

Değişim EditRow için:

function EditRow(html) {
  var confirmEdit = '<tr class="editable" id=" '+ id +' ">'+
    '<td><input type="text" value="' + name + '" /></td>'+
    '<td> ' + html + ' </td>'+
    '<td><input type="text" value="' + data + '" /></td>'+
    '<td>' + saveCancel + '</td>'+
    '</tr>';
}

: ve sonra için ready işlevini değiştirmek

function Competition() {
  $(document).ready(function() {
    $.ajax({
      url: "load-comp.php",
      cache: false,
      success : function(html) {
        EditRow(html);
      }
    });
  });
}