2012-08-01 50 views
0

我有一個表格和一個腳本,當單擊行尾編輯按鈕時,每個單元格都是輸入字段。 我通過Ajax提交編輯後的數據,但是我想在編輯後將輸入字段恢復爲正常文本。如何將輸入字段更改回文本

下面是代碼:

//// EACH CELL INTO INPUT FIELD //// 
$(document).ready(function(){ 
     $(".edit").click(function(){ 
      var tr = $(this).closest("tr"); 

      tr.find(".td").each(function(){ 
       var name = $(this).attr("title"); 
       var value = $(this).html(); 
       var input = "<input type='text' name='"+name+"' value='"+value+"' />"; 
       $(this).html(input); 
      }); 

      var submit = "<input type='button' name='Submit' value='Submit' />"; 
      tr.find(".button").html(submit); 

     }); 
}); 
//// END //// 

//// ONCLICK SUBMIT SEND DATA VIA AJAX //// 
$(".button input[type=button]").live('click', function() { 
    var data = $('form#muuda').serialize(); 
    // post data using ajax                                           
    $.ajax({ 
    type: "POST", 
    url: "index.php?leht=kast", 
    data: data, 
    success: function(data) { 
     alert("Andmed muudetud"); // show response from the php script.                                   
    } 
    }); 
}); 
//// END //// 

HTML:

<form id="muuda" method="post" action="#"> 
    <table> 

<?PHP 
$sql="SELECT * FROM nimed"; 
$result = mysql_query($sql)or die(mysql_error()); 
    WHILE ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
     echo '<tr class="row">'; 
      echo '<td class="td" title="id">'.$row["id"].'</td>'; 
      echo '<td class="td" title="eesnimi">'.$row["eesnimi"].'</td>'; 
      echo '<td class="td" title="perenimi">'.$row["perenimi"].'</td>'; 
      echo '<td class="button" title="button"><button class="edit">Edit</button></td>'; 
     echo '</tr>'; 
    } 
?> 

    </table> 
</form> 

下面是預覽的圖片:

https://lh6.googleusercontent.com/-vVnabdBzFlA/UBjTRhifpWI/AAAAAAAACAo/RvAgpi7x2ik/s488/Ajax%2520submit.jpg

+0

我使用了[「編輯就位」](http://code.google.com/p/jquery-in-place-editor/),它是一個jQuery插件,您可以在其中單擊文本並突然變爲inputtextfield,然後根據需要編輯文本,然後使用「保存」和「取消」兩個按鈕保存文本或恢復舊文本。看看[示例1在此演示頁面](http://jquery-in-place-editor.googlecode.com/svn/trunk/demo/index.html) – ClydeFrog 2012-08-01 07:24:58

回答

0

你可以只扭轉你在使用過程將其從文本轉換爲輸入框:

tr.find('.td').each(function() { 
    var value = $(this).find('input').val(); 
    $(this).html(value); 
}); 

當然,您必須將變量tr設置爲正確的行。

相關問題