2017-09-10 2 views
1

PDO(PHPデータオブジェクト)によって更新されるソート可能なリストを作成しようとしています。 更新したくないように思えますが、何か問題が発生しましたが、どこが間違っているのか分かりません。ドラッグは正常に動作し、データは正しく動作するようです。それをデータベースに更新するだけではありません。 jQueryのJqueryのソート可能な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

あなたは、AJAXを通じてHTMLコンテンツを更新しますか?それはあなたが欲しいものですか? –

+0

Hm。私はJQUERYのソート可能なリストを持っていたいと思います。リストを順番にドラッグすることができます。どちらが行われます。次に、このデータをデータベースに更新したいと思います。これはajaxを使って –

答えて

0

これを修正できました。私は実際にデータベースのconfig.phpをどのように入手していたのかという問題でした。

その他のコードは動作します。

0

あなたは、AJAXを介してファイルを呼び出しているので、あなたがorder.phpにすべてのエラーを表示することはできません、あなたは以下にあなたのAJAX呼び出しを変更する必要があることを行うには:

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

今問題は、あなたが持っていることは、ステートメントのためのデータを供給せずにpdo prepare文を使用していると思うので、実行メソッドにデータを供給し、バインディングを使用するか、代わりにqueryメソッドを使用する必要があります。

$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

あなたがそれを理解してうれしいです。 :) –

関連する問題