2014-09-23 87 views
0

我有一個論壇,允許用戶編輯和刪除他的評論,我已經定義了一個「編輯」按鈕,通過點擊鼠標可以打開一個模式,並在該模式用戶被允許訪問他/她以前發送的數據,我寫了一個ajax來定位這些字段,並在用戶點擊「編輯」按鈕時更新它們,代碼完全有意義,但到目前爲止該功能不會使用戶點擊,模式下降,他/她發佈的任何內容都會顯示在字段中,並且模式底部會出現一個「編輯」按鈕,該按鈕負責更改並更新數據。這裏是模態代碼:Ajax沒有更新數據

   <button id="btn-btnedit" class="btn btn-primary " data-toggle="modal" data-target="#myModal<?php echo $list['id']; ?>"> 
        Edit <i class="fa fa-pencil-square-o"></i> 
       </button> 


       <!-- Modal --> 
       <div class="modal fade" id="myModal<?php echo $list['id']; ?>" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 
        <div class="modal-dialog"> 
        <div class="modal-content"> 
         <div class="modal-header"> 
         <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button> 
         <h4 class="modal-title" id="myModalLabel">Modal title</h4> 
         </div> 
         <div class="modal-body"> 
         <div class="container"> 
            <form style="width: 550px;" action="" method="post" id="signin-form<?php echo $list['id']; ?>" role="form"> 
            <input type="hidden" name="commentID" value="<?php echo $list['id']; ?>"> 
            <div class="from-group"> 

             <label for="title">Title: </label> 
             <input class="form-control" type="text" name="title" id="txttitle" value="<?php echo $list['title']; ?>" placeholder="Page Title"> 

            </div> 
            <div class="from-group"> 

             <label for="label">Label: </label> 
             <input class="form-control" type="text" name="label" id="txtlabel" value="<?php echo $list['label']; ?>" placeholder="Page Label"> 

            </div> 

            <br> 

            <div class="from-group"> 

             <label for="body">Body: </label> 
             <textarea class="form-control editor" name="body" id="txtbody" row="8" placeholder="Page Body"><?php echo $list['body']; ?></textarea> 

            </div> 
            <br> 
            <input type="hidden" name="editted" value="1"> 
            <br> 
            <br> 
            <input type="submit" id="btnupdate" value="Edit"> 
           </form> 
         </div> 
         </div> 

,你可以看到我已經指派「editted」我的「name」屬性,這就是後來的上用於調用數據庫中的查詢,SQL代碼如下:

 case 'postupdate'; 

     if(isset($_GET['editted'])){ 

       $title = $_GET['title']; 
       $label = $_GET['label']; 
       $body = $_GET['body']; 

        $action = 'Updated'; 
        $q = "UPDATE posts SET title ='".$title."', label = '".$label."', body = '".$body."' WHERE id = ".$_GET['commentID']; 
        $r = mysqli_query($dbc, $q); 


        $message = '<p class="alert alert-success"> Your Post Is Succesfully '.$action.'</p>' ; 


      } 

這裏是ajax代碼片段;

$('#btnupdate').click(function() { 
    var tempTitle = $('#txttitle').val(); 
    var tempLabel = $('#txtlabel').val(); 
    var tempBody = $('#txtbody').val(); 
    var tempUrl = "index.php?page=postupdate"+"&title="+tempTitle+"&label="+tempLabel+"&body="+tempBody+"&commentID=30&editted=1"; 
    $.get(tempUrl); 
}); 

我假設有關於這個部分的代碼沒有什麼進步,我失去了一些東西很簡單,任何代價的高度讚賞:)

+0

你應該做一個帖子,而不是一個get。內容可能會很長。 (大小寫注入) – Daan 2014-09-23 14:20:22

+0

你好大安,在發佈之前嘗試過,好吧,這比我想的方法還要多 – 2014-09-23 14:23:00

+0

你對.get()的結果不做任何事情,你沒有通過回調... – FrancescoMM 2014-09-23 14:23:16

回答

0

這(未經測試的代碼)可以是類似於您應該做的:

$('#btnupdate').click(function() { 
    var tempTitle = $('#txttitle').val(); 
    var tempLabel = $('#txtlabel').val(); 
    var tempBody = $('#txtbody').val(); 
    var tempParams = {"page":"postupdate","title":tempTitle,"label":tempLabel,"body":tempBody,"commentID":30,"editted":1}; 

    $.post("index.php",tempParams,function(data) { 
     alert(data); 
    }); 
}); 

UPDATE

嘗試AJAX,而不是能看到,如果一些錯誤發生S IN裝載

$.ajax({url:"index.php",data:tempParams,type: "POST"}).done(function() { 
    alert("success"); 
}).fail(function() { 
    alert("error"); 
}).always(function() { 
    alert("complete"); 
});` 

UPDATE

開始測試,如果單擊處理工作,然後(只是可以肯定的!)。

$( '#btnupdate')點擊(函數( ){alert(「是的,至少按下了按鈕」); });如果腳本被執行,然後

UPDATE

開始測試:

alert("yes at least the script gets executed"); 
$('#btnupdate').click(function() { alert("yes at least the button was pressed"); }); 

如果沒有,你必須有一個JavaScript錯誤的地方。 https://webmasters.stackexchange.com/questions/8525/how-to-open-the-javascript-console-in-different-browsers

如果是的話,你的按鈕沒有得到的jQuery捕獲(不知道爲什麼)

反正它什麼都沒有做與AJAX或搞定!

+0

沒有結果的人... – 2014-09-23 14:34:34

+0

@EscapeCharacter沒有javascript錯誤,沒有加載,沒有任何操作? – FrancescoMM 2014-09-23 14:37:48

+0

有一個加載,我不知道什麼,但沒有錯誤,迄今爲止沒有行動.....我試圖通過它的工作原理手動更新數據,但不知何故在這段代碼中,是缺少,我非常尋找它.... – 2014-09-23 14:39:59