2015-01-10 2 views
-2

td 내부에서 편집 할 수있는 테이블을 만들었으므로 잘 작동합니다. 나는 제품의 이름을 편집했고 나의 웹 페이지에서 성공적으로 바뀌었지만 데이터베이스로 업데이트하지는 않습니다.콜백 편집 가능 PHP가 작동하지 않음

내 데이터베이스는 다음과 같습니다

여기

td 내부 편집하기위한 코드입니다.

$results = $mysqli->query("SELECT * FROM productList"); 
while($row = $results->fetch_assoc()) { 
    <td> <span class="edit" id="'.$row['ID'].'"> '.$row['name'].' </span> </td> 
} 

편집 가능한 경우 값을 다시 호출하려면 AJAX를 사용해야합니다. 이런 식으로 뭔가 : AJAX 후

jQuery(document).ready(function() { 
    $.fn.editable.defaults.mode = 'popup'; 
    $('.edit').editable();  
    $(document).on('click','.editable-submit',function(){ 
     var x = $(this).closest('td').children('span').attr('id'); 
     var y = $('.input-sm').val(); 
     var z = $(this).closest('td').children('span'); 
     $.ajax({ 
      url: "edit.php?id="+x+"&data="+y, 
      type: 'GET', 
      success: function(s){ 
       if(s == 'status'){ 
       $(z).html(y);} 
       if(s == 'error') { 
       alert('Error Processing your Request!');} 
      }, 
      error: function(e){ 
       alert('Error Processing your Request!!'); 
      } 
     }); 
    }); 
}); 

, 나는 edit.php에 URL을 호출해야합니다. edit.php에 대한 코드는 다음과 같습니다 : 내가 수동으로 phpMyAdmin을에 업데이트하기 위해 노력했다

$mysqli = new mysqli('localhost','root','root','database_name'); 
if ($mysqli->connect_error) { 
    die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error); 
} 

if($_GET['id'] and $_GET['name']) 
{ 
    $id = $_GET['id']; 
    $name = $_GET['name']; 
    if ($mysqli->query("UPDATE productList SET name='$name' WHERE ID='$id'")); 
    $mysqli->close(); 
    echo 'success'; 
} 

, 아주 잘가 작동합니다. 하지만 여기에는 없습니다. 지금 당장 작동해야합니다. 내가 놓친 게 있니?

+0

확인 당신이 행을 갱신 할 때 mysqli 오류가 발생합니다. –

+0

AJAX를 사용하면서 던지라고 말해 줄 수 있습니까, AJAX에는 너무 익숙합니다. 내가 시도한 edit.php에서 오류가 throw되지만 모든 오류를 표시하지 않습니다 :/ – Anthosiast

답변

0

다음과 같이 코드를 업데이트해야합니다. 파일이 정상이면 edit.php?id=..&name=..을 직접 호출하여 디버깅 할 수 있습니다.

jQuery를 :

$.ajax({ 
      url: "edit.php?id="+x+"&name="+y, 
      type: 'GET', 
      success: function(s){ 
       alert(s) ; 
       if(s == 'status'){ 
        $(z).html(y); 
       }      
      }, 
      error: function(e){ 
       alert(e.status); 
      } 
     }); 

PHP :

if($_GET['id'] && $_GET['name']) // this is not SQL! so and will not work! 
{ 
    $id = $_GET['id']; 
    $name = $_GET['name']; 
    if ($result = $mysqli->query("UPDATE productList SET name='".$name."' WHERE ID='". $id."'")){ 

     $mysqli->close(); 
     echo 'success'; 
    }else{ 
     echo mysqli->error; 
    } 


} 

READ Some MYSQLI DOC

+0

안녕 힌트 주셔서 감사하지만 '요청 처리 오류!'와 같은 오류가 나타납니다'그것을 얻을 수 없습니다. – Anthosiast

+0

'$ .ajax ({url : "edit-productList.php? id ="+ x + "& data ="+ y, type : 'GET' '페이지가 맞는지 확인하고 있습니다. 데이터 '는 AJAX에서와 같아야합니다. @Riad – Anthosiast

+0

당신은'$ _GET ['name ']'을 사용하지만 왜 & data = ..를 넘겨야합니까? – Riad