2017-04-04 3 views
0

Ich möchte ein Formular zum Bearbeiten von Daten aus MySQL mit Javascript erstellen. Wenn ich auf den Link Bearbeiten klicke, wird das Bearbeitungsformular für Bearbeitungsdaten angezeigt.Kann ich PHP und Javascript verwenden, um Formulardaten zu bearbeiten?

Dies ist von und PHP-Code für Show-Daten.

<form id="form-edit" method="post"> 
<?php 
    $sql = "SELECT * FROM comment WHERE question_id = $question_id ORDER BY id DESC"; 
    $r1 = mysqli_query($link, $sql); 
    while($cm = mysqli_fetch_array($r1)) { 

     $comment_id = $cm['id']; 

     echo '<section class="section-comment">'; 
     echo '<span class="commentator">' .$cm['user_id'] . '</span>'; 
     echo $cm['detail']; 

     // This is link Edit 
     echo '<a href="#" class="edit-comment" edit-id="'.$comment_id.'">Edit</a>'; 

     echo $comment_id; //This can show correct comment_id 

     ?> 

     <div id="form-edit-dialog"> 


    <input type="text" name="user_id" value="<?php echo $user_id ?>" readonly > <br> 

    //I add this line for check comment_id but it show max comment_id to min when I open and close form 
    <input type="text" name="id" value="<?php echo $comment_id ?>" readonly > <br> 

    <textarea name="detail"></textarea><br> 

    <button type="submit" id="submit-edit">Submit</button> 

    <input type="hidden" name="comment_id" id="comment-id"> 

} 
</form> 
</div> 

Ich schreibe Code Java-Skript wie folgt.

$(function() { 
    $('a.edit-comment').click(function(event) { //Click link Edit 
     $('#form-edit')[0].reset(); 

     event.preventDefault(); 

     var t = "Edit Comment"; 

     $('#form-edit-dialog').dialog({ 
      width: '600px', 
      title: t, 
      modal: true, 
      position: { my: "center", at: "center", of: window} 
     }); 

     //set value for hidden 
     $('#comment-id').val($(this).attr('edit-id')); 

    }); 

    $('#submit-edit').click(function() { 

     $('form#form-edit').ajaxForm({ 
      url: 'save-edit.php', 
      type: 'post', 
      dataType: 'script', 
      beforeSend: function() { 
       $.blockUI({message:'<h3>Sending data...</h3>'}); 
      }, 
      complete: function() { 

       $.unblockUI(); 
      } 
     }); 
    }); 
}); 

PHP können alle Kommentarliste und zeigen comment_id richtig, aber wenn ich auf Bearbeiten klicken, es maximale Anzahl der comment_id zeigen und wenn ich Formular schließen und Bearbeiten erneut auf. Die Kommentar-ID reduziert die Kommentar-ID-Nummer, bis keine Kommentar-ID angezeigt wird. Kann ich PHP und Javascript verwenden, um Formulardaten zu bearbeiten oder muss ich Daten an eine neue Seite senden?

Antwort

0
  1. Wenn der Benutzer das Recht hat, zu kommentieren, bedeutet er, dass er geloggt wird, also können Sie im Grunde die ID von Sitzung, Plätzchen erhalten; macht nicht Sinn, um hier die Benutzer-ID zu extrahieren ODER Sie können die Überprüfung machen, ob er das Recht hat, zu kommentieren (user_id ist gleich mit Sitzung eins).
  2. machen nur den Wechsel zwischen und wie folgt aus:

<

<div id="showtext<?php echo $comment_id ?>" > 
<span id="comment<?php echo $comment_id ?>"><?php echo $cm['detail'] ?></span> 
<a href="javascript:void(0)" class="edit-comment" id="<?php echo $comment_id ?>">Edit</a> 
<div> 

<!-- this is invisible at start --> 
<div id="showedit<?php echo $comment_id ?>" style="display:none"> 
<textarea id="edittext<?php echo $comment_id ?>"><?php echo $cm['detail'] ?></textarea> 
<a href="javascript:void(0)" class="submit-comment" id="<?php echo $comment_id ?>">Save comment</a> 
</div> 

und Javascript Ansichten wechseln:

$('.edit-comment').click(function() { 
     var id=$(this).attr("id"); 
$("#showedit"+id).show(); 
$("#showtext"+id).hide(); 
}); 

und

$('.submit-comment').click(function() { 
    var id=$(this).attr("id"); 
    var comment=$("#edittext"+id).val(); 

    //send the data via ajax with parameters id and comment to alter the row, in php add the user id from session, cookie and on success: 

//replace the old text 
    $("#comment"+id).html(comment); 
//and make the switchback 
    $("#showedit"+id).hide(); 
    $("#showtext"+id).show(); 

    }) 
einreichen
Verwandte Themen