2013-04-06 25 views
0

我想用PHP,jQuery來製作一個內聯編輯解決方案的輸入值,阿賈克斯jQuery的獲取從環

我的循環:

$a=0; 

    while($row = $db->fetch_array($res)){ 
    if($a%2==1){ 
    $class = 'class="even"'; 
    } 
    else{ 
    $class = 'class="odd"'; 
    } 
    $a++; 

HTML表格:

<tr <?php echo $class; ?>> 
    <td class="th table-check-cell sorting_1"><input type="checkbox" name="zones_id[]" value="<?php echo $row['zone_id']; ?>"></td> 
    <td><?php echo $a; ?></td> 
    <td><?php echo $row['zone_name']; ?></td> 
    <td><?php echo $row['zone_position']; ?></td> 
    <td><?php echo $row['status']; ?></td> 

    <td class="table-actions"> 
    <a href="javascript:void(0);" title="Edit" class="with-tip" onclick="slidemenu('innerlinks_<?php echo $a; ?>')"><img src="images/icons/fugue/pencil.png" width="16" height="16"></a></td> 
    </tr> 

    <tr style="display:none;" id="innerlinks_<?php echo $a; ?>" class="sub"> 
    <td><?php echo $a; ?></td> 
    <td><input type="checkbox" /></td> 
    <td><input type="text" class="zn" name="zone_name" id="zone_name" value="<?php echo $row['zone_name']; ?>" /></td> 
    <td><input type="text" name="zone_pos" id="zone_pos" value="<?php echo $row['zone_position']; ?>" /></td> 
    <td colspan="2"><a><?php echo $row['zone_name']; ?></a></td> 
    </tr> 



    <?php } ?> 



    function slidemenu(id){ 
     $('#'+id).slideToggle(); 
     } 





    ///second proccess 

    $(".sub").click(function(){ 
     $(this).closest('tr').find("input,select").each(function() { 




     $.ajax({ 
      type: "POST", 
      url: "<?php echo SITE_URL .'controlls/zone_add.php'; ?>", 
      data: datastring, 
      success: function (data) { 

      alert("Details saved successfully!!!"); 
      } 
      }) 

      }); 

    }); 

我想要兩個東西:

一個是隱藏我的數據行並顯示錶單行進行編輯。 二是如何獲得通過那裏所有輸入選擇收音機等命名爲Ajax請求

+0

你有什麼問題? – Marshmellow1328 2013-04-06 18:08:40

+0

獲取特定的行字段值 – Zia 2013-04-06 18:22:01

回答

1

你需要做的就是產生在表中每行的唯一ID是什麼 - 而給表一行ID:

<tr id="<?= $id ?>" class="<?= $class ?>"> 

然後,您可以使用jQuery $("#<?= $id ?>")找到此行,並操縱行的內容以用輸入控件和提交/取消按鈕替換靜態文本。

另外,當您想要提交時,您可以通過使用jQuery查詢輸入值來檢索輸入值。 例如:

$("tr#<?= $id ?> input#zone_name").value(); 

的關鍵是給每個行的唯一ID,您可能已經在數據庫中...

+0

我可以把php放在jquery中? jQuery代碼在PHP循環? – Zia 2013-04-06 18:21:13

+0

不,您可以爲每行定義onclick事件以包含行ID。這樣它就成爲事件處理程序的輸入。每行有一個'Edit row'控件。然後'showEditControls'可以是全局的並且獨立於行。然後,對於表中所需的每個控件和每個其他行,都要做​​類似的操作。 – fredrik 2013-04-06 18:25:05

1

你不想爲每個字段做一個AJAX POST 。

$(".sub").click( 
    function() { 
     var data = {}; 
     $(this).closest("tr").find("input,select").each(
      function() { 
       data[$(this).attr("name")] = $(this).val(); 
      } 
     ); 
     $.post("your URL", data, function(data) { alert("Successful!"); }); 
    } 
); 

我沒看過你的選擇器。我假設你有他們正確的。我只關注從每個字段捕獲值的過程,將其添加到JavaScript對象並通過AJAX發佈。

+0

你的答案几乎是正確的,但是你爲數據創建了一個數組,這是它返回所有頁面輸入值的方式。我爲如下數據創建一個字符串: var data =''; 並在這個數組中追加值,如: var data + = $(this).attr(「name」)= $(this).val(); 在最後我刪除javascript切片的逗號,並完成我的工作。 感謝您的回覆。 – Zia 2013-04-10 11:41:14

+0

爲什麼要連接才必須稍後切片? – Marshmellow1328 2013-04-10 23:29:46