2014-10-07 2 views
0

Что я пытаюсь сделать, так это редактировать записи mysql с помощью php. Я использовал Ajax/Json для редактирования одной записи, но проблема в том, что мои коды не работают. Я попытался предупредить значение входного элемента после того, как я нажал кнопку сохранения и подтвердил вывод предупреждения. А также я не получаю никаких сообщений в консоли.Обновление записей Mysql с использованием Ajax/Json не работает

Вот что я получил прямо сейчас. Любая помощь будет оценена.

Index.php

<div class="entry-form1"> 
<form action="" method="post"> 
<input type="text" name="id_edit" id="id_edit" class="inputs_edit"> 
<input type="text" name="approved_edit" id="approved_edit" class="inputs_edit"> 
<input type="submit" name="save_edit" id="save_edit" value="Save"/> 
</form> 
</div> 

search.php

$query1 = $mysqli->query(""); // not to include 
while($r = $query1->fetch_assoc()){ 
<td><a href='#' name='".$r['id']."' id='".$r['pr_id']."' class='edits'>Edit</a></td> 
} 

    <script> 
    $(document).ready(function(){ 

$(".edits").click(function(){ 
    $(".entry-form1").fadeIn("fast"); 
    //not to include some parts of codes 
    $.ajax({ 
    type: "POST", 
    url: "auto-complete.php", 
    data :edit_post_value, 
    dataType:'json', 
    success:function(data){ 
    var requested=data.requested; 
    var id=data.id; 
    //send to element ID 
    $('#id_edit').val(id); 
    $('#requested_edit').val(requested); 
    } 
    }); 

    $("#save_edit").click(function() { 
    var two = $('#id_edit').val(); 
    var five = $('#requested_edit').val(); 
    alert(five); 
      $.ajax({ 
      type: "POST", 
      url: "item_edit.php", 
      data: "id_edit="+two+"&requested_edit="+five, 
      dataType:'json', 
      success: function(data){ 
      console.log(JSON.stringify(data)) 
       if(data.success == "1"){ 
         $(".entry-form1").fadeOut("fast"); 
        //setTimeout(function(){ window.location.reload(); }, 1000);   
       } 
      } 
     }); 
    }); 
}); 
</script> 

Item_edit.php

<?php 
$mysqli = new mysqli("localhost", "root", "", "app"); 

if(isset($_POST['id_edit'])) { 
$id_edit= $_POST['id_edit']; 
$requested_edit= $_POST['requested_edit']; 
$sql = $mysqli->query("UPDATE pr_list SET requested='$requested_edit' WHERE id='$id_edit'"); 

     if($sql){ 
      echo json_encode(array("success" => "1")); 
     }else{ 
      echo json_encode(array("success" => "0")); 
     } 
} 
?> 
+0

у вас есть какие-либо сообщения об ошибках в консоли .. – Gowri

+0

@Gowri Вот что я забыл включить на мой вопрос. У него не было консольного сообщения. – user3631428

+0

ваше значение 'request_edit' на функцию save_edit, но я не видел этого поля в форме. – Gowri

ответ

1

1) Во-первых, вы не захватывая событие щелчка, потому что $ ("# save_edit") находится в пределах который не вызывается. Таким образом, вы даже не отправляете форму на сервер.

2) Во-вторых, как это форма работы по умолчанию отправить данные, а затем перезагрузите страницу, вы должны вызвать preventDefault() функция от объекта событий, фиксируемых, чтобы предотвратить его, прежде чем сделать вызов Ajax ,

попробовать это:

$(document).ready(function(){ 

    $("#save_edit").click(function (e) { 
     e.preventDefault(); //prevent a page reload 

     var two = $('#id_edit').val(); 
     var five = $('#requested_edit').val(); 
     alert(five); 

     $.ajax({ 
      type: "POST", 
      url: "/item_edit.php", 
      data: "id_edit="+two+"&requested_edit="+five, 
      dataType:'json', 
      success: function(data){ 

       console.log(JSON.stringify(data)); 
       if(data.success == "1"){ 
          $(".entry-form1").fadeOut("fast"); 
         //setTimeout(function(){ window.location.reload(); }, 1000);   
        } 
       } 
    }); 

    }); 

}); 
+0

Теперь я понимаю. Оно работает. Приветствия !!! – user3631428

Смежные вопросы