2015-05-13 80 views
2

我有一個表,我試圖添加內聯編輯,但我真的是新的Ajax。 JQuery代碼本身起作用,我可以看到td正在變成輸入字段,但我在發佈數據時遇到了麻煩。Ajax不發佈內聯表編輯

當我從表格td點擊離開時,我試圖編輯它,假設發佈數據。但是當我這樣做並刷新頁面時,生成的表格不會更新,也不會看到數據庫中的更改。它不顯示錯誤,它只刷新頁面。

projectlist數據庫表

projectid | Klant 

4   | mike 

12  | peterson 

PHP

while($row = mysql_fetch_array($resultaat, MYSQL_ASSOC)){ 
    $id = $row['projectid']; 

    <tr id="<?php echo $id ?>" class="tredit"> 
     <form action="" method="post"> 
      <td> 
       <span id="klant_<?php echo $id ?>" class="text"><?php echo $row["Klant"] ?></span> 
       <input type="text" class="ip" id="klant_ip_<?php echo $id ?>" value="<?php echo $row["Klant"] ?>"> 
      </td> 
     </form> 
    </tr> 
} 

阿賈克斯

$(document).ready(function(){ 
    $(".tredit").click(function(){ 
     var ID=$(this).attr('id'); 

     $("#klant_"+ID).hide(); 
     $("#klant_ip_"+ID).show(); 
    }).change(function(){ 
     var ID=$(this).attr('id'); 
     var first=$("#klant_ip_"+ID).val(); 
     var dataString = 'id='+ ID +'&Klant='+first; 
     //alert(dataString); 

     if(first.length > 0){ 
      $.ajax({ 
       type: "POST", 
       url: "post_table.php", 
       //data: dataString, 
       data: dataString, 
       cache: false, 
       success: function(html){ 
        $("#klant_"+ID).html(first); 
       }, 
       error: function (request, error) { 
        console.log(arguments); 
        alert(" Can't do because: " + error); 
       } 
      }); 
     }else{ 
      alert('Input something'); 
     } 
    }); 

    $(".ip").mouseup(function() { 
     return false 
    }); 

    $(document).mouseup(function(){ 
     $(".ip").hide(); 
     $(".text").show(); 
    }); 
}); 

post_table.php

<?php 
    include('config.php'); 
    $klant = $_POST['Klant']; 
    $id = $_POST['id']; 
    $query = "update projectlist set Klant='$klant' where id='$id'"; 
    mysql_query($query, $con); 
?> 

解決方案

我得到它的工作。它從來沒有發生過我徹底檢查post_table.php

where id='$id'是錯的,它必須是where projectid='$id'

+1

什麼不實際工作,在返回的東西?你能看見什麼 ?數據庫沒有填滿? – Cr3aHal0

+0

Ajax請求是否被觸發? –

+0

@ M.M。它似乎並不如此。我在我的問題中添加了更多細節。 – user3095385

回答

0
$(document).ready(function(){ 
    $(".tredit").click(function(){ 
     var ID=$(this).attr('id'); 

     $("#klant_"+ID).hide(); 
     $("#klant_ip_"+ID).show(); 
    }) 

$(".tredit").change(function(){ 
     var ID=$(this).attr('id'); 
     var first=$("#klant_ip_"+ID).val(); 
     var dataString = {"id":ID,"Klant":first}; 
     //alert(dataString); 
     $("#klant_"+ID).html('<img src="load.gif" />'); 

     if(first.length > 0){ 
      $.ajax({ 
       type: "POST", 
       url: "post_table.php", 
       data: dataString, 
       cache: false, 
       success: function(html){ 
        $("#klant_"+ID).html(first); 
       } 
      }); 
     }else{ 
      alert('Input something'); 
     } 
    }); 

    $(".ip").mouseup(function() { 
     return false 
    }); 

    $(document).mouseup(function(){ 
     $(".ip").hide(); 
     $(".text").show(); 
    }); 
}); 

的PHP已經頁面

<?php 
    include('config.php'); 
    $klant = $_POST['Klant']; 
    $id = $_POST['id']; 
    $query = "update projectlist set Klant='$klant' where id='$id'"; 
    mysql_query($query, $con); 
    echo "success"; 
?> 
+0

不是'{id:ID,Klant:first};'意思是'dataType:「json」 '?如果我補充一點,我得到一個解析錯誤。但是,如果我刪除json contenttype,我不會收到錯誤,但沒有其他事情發生。 – user3095385

+0

嘗試使用'dataType:「json」'和'data:JSON.stringify({id:ID,Klant:first})' – madalinivascu

+0

仍似乎得到一個錯誤。這太令人討厭了。 – user3095385