2017-09-10 6 views
1

PDO (PHP Data Objects)로 업데이트되는 정렬 가능한 목록을 만들려고합니다. 나는 업데이트하고 싶지 않은 것처럼 보이지만 뭔가 잘못했는지 확신 할 수 없다. 드래그가 잘 작동하고 데이터가 올바르게 작동하는 것 같습니다. 데이터베이스로 업데이트하지 않습니다. JQuery와Jquery sortable PDO 업데이트 순서

<ul id="sortable"> 
<?php 
    $sql = "SELECT * FROM ".$prefix."question WHERE enabled = 1 ORDER BY sortby ASC"; 
    $stm = $dbh->prepare($sql); 
    $stm->execute(); 
    $u = $stm->fetchAll(); 

    $count = 0; 

    foreach ($u as $sup) {      
?> 
    <li id="item-<?php echo $sup['id']; ?>"><?php echo $sup['title']; ?></li> 
<?php } ?> 
</ul> 

<script src="https://code.jquery.com/jquery-1.12.4.js"></script> 
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> 
<script> 
    $('#sortable').sortable({ 
    axis: 'y', 
    update: function (event, ui) { 
     var data = $(this).sortable('serialize'); 

     // POST to server using $.post or $.ajax 
     $.ajax({ 
      data: data, 
      type: 'POST', 
      url: 'order.php' 
     }); 
    } 
}); 
</script> 

PHP 파일과

홈페이지 파일은 [order.php] (데이터베이스 연결이 괜찮 제대로 작동) 누군가가 내 문제가 무엇인지 볼 수 있다면, 나는 '

<?php 
ob_start(); 
session_start(); 
$admin = true; 
require "inc/config.php"; 

$i = 0; 

foreach ($_POST['item'] as $value) { 
    // Execute statement: 
    // UPDATE [Table] SET [Position] = $i WHERE [EntityId] = $value 
    $sql = $dbh->prepare("UPDATE ".$prefix."question SET sortby='".$i."' WHERE id=1"); 
    $sql->execute(); 

    $i++; 
} 

?> 

정말 고마워.

+0

당신은 아약스를 통해 HTML 콘텐츠를 업데이트 할? 너가 원하는게 그거야 ? –

+0

흠. 목록을 순서대로 끌 수있는 JQUERY 정렬 가능 목록이 필요합니다. 어느 것이 완료되었습니다. 그런 다음이 데이터를 데이터베이스로 업데이트하고 싶습니다. 나는 ajax를 사용하여 –

답변

0

이 문제를 해결할 수있었습니다. 실제로 데이터베이스에 대한 config.php를 얻는 방법에 문제가있었습니다.

나머지 코드는 작동합니다.

0

당신이 아약스를 통해 파일을 호출하고 있기 때문에 당신이 order.php에서 오류를 볼 수 없습니다, 당신은 다음에 아약스 호출을 변경해야 할 :

$.ajax({ 
     data: data, 
     type: 'POST', 
     url: 'order.php', 
     success: function(data){ 
      alert(data); // for testing 
     } 
    }); 

이제 문제는 내가 당신의 성명에 대한 데이터를 제공하지 않고 성명을 pdo 준비를 사용하고 생각, 당신은 바인딩을 사용하거나 대신 쿼리 메서드를 사용하여 실행 메서드에 데이터를 제공해야합니다.

$sql = $dbh->prepare("UPDATE ".$prefix."question SET sortby= ? WHERE id=?"); 
$sql->execute([$i,1]); 

또는 당신이 당신의 데이터를 살균의 다른 방법이있는 경우 쿼리 문을 사용할 수 있습니다

$sql = $dbh->query("UPDATE ".$prefix."question SET sortby='".$i."' WHERE id=1"); 
+0

으로 보내 주신 답장을 보내 주셔서 감사합니다. 나는 그것을 해결했다. 문제는 실제로 config.php입니다. 실제로 order.php 페이지에서 501 오류가 발생했습니다 –

+0

당신이 그것을 알아 냈기 때문에 기쁩니다. :) –