• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:jquery serializable値取得)

jQuery UIのsortableを利用したHTMLテーブルのソートプログラムのデータ取得方法

このQ&Aのポイント
  • jQuery UIのsortableを利用し、HTMLで作成したテーブルをtr単位でソートできるプログラムを作成しました。
  • ソート後の並びをDBに保存する為に、各TRにdata-idの属性を設定の上、sortableのイベントメソッドから、データをサーバへ送るプログラムを書きましたがうまく動きません。
  • サーバサイドではPHPでデータを取得していますが、どうやって値を取得すれば良いでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • ok-rjak
  • ベストアンサー率52% (70/134)
回答No.1

sortableを使うときのコードは結構使い回しができるので、パターンさえ覚えて作ってしまえば、流用が可能です。 まず、PHPで受け取れているのであれば、そのデータを配列に変換してやる必要があります。 parse_str($_POST['file']); としてやれば、Query Stringのような文字が$fileという変数に配列変換されて入ると思います。 これで並び替えされたID順に配列が設定されると思うので、あとはこの順でDBに設定してやるだけです。 foreach ($file as $key => $val) { $sql = "update テーブル名 set orderby = :orderby where id = :id"; $stmt = $db->prepare($sql); $stmt->bindValue(':orderby', $key); $stmt->bindValue(':id', $val); $stmt->execute(); } 上はPDOで書いていますが、mysql_query()等を使っても考え方は同じです。 foreach ($file as $key => $val) { $sql = sprintf("update テーブル名 set orderby = '%d' where id = '%d'", mysql_real_escape_string($key), mysql_real_escape_string($val)); $result = mysql_query($sql); } これで並び替えされた順に、orderbyフィールドに「0、1、2、・・・」と順番に数字が入っていきます。

関連するQ&A

専門家に質問してみよう