![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
jQuery UIのsortableを利用し、HTMLで作成したテーブルをtr単位で
ソートできるプログラムを作成しました。
ソート後の並びをDBに保存する為に、各TRにdata-idの属性を設定の上、
sortableのイベントメソッドから、データをサーバへ送るプログラムを書きましたがうまく動きません。
というより、、、サーバサイド側は、PHPでデータを取得しているのですが、
うまく処理する方法がわかりません。。。どうやったら、値を取得できるでしょうか。
下記にサンプルコードとサーバサイド側での取得データを記載しています。
取得したいデータは、サンプルデータ内の1、3、2です。
ユーザインタフェース側
-----------------------------------------------------
$('#src').sortable({
items: 'tr',
axis: 'y',
opacity: 0.2,
handle: '.drag',
placeholder: 'ui-state-highlight',
update: function() {
$.post('serverside.php', {
file: $(this).sortable('serialize'),
});
}
});
-----------------------------------------------------
serverside.php
-----------------------------------------------------
$res = $_POST['file'];
-----------------------------------------------------
$resの中身を見たら、
file[]=1&file[]=3&file[]=2
が入ってました。
それぞれの値をどうやって取り出したらよいのでしょうか。。。
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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript gasについて 1 2022/05/31 21:51
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データ受け渡しについて
-
ajaxでhtmlを返して画面に描画…...
-
Response.Write(変数)
-
【JavaScript】confirmのボタン...
-
ASP.NET(VB)VBソースからJavas...
-
[JavaScript] preven...
-
onmouseoverでセキュリティ保護
-
saved from url=(0013)abou
-
HTMLでDBからデータを表形式で...
-
google トラッキング コ...
-
リサイクルショップの「動作OK...
-
DirectXとOpenGLはどちらが動作...
-
HP作成の際、どうしていますか?
-
PHPでフォームの自動入力できま...
-
ASP.netで作成したシステムのip...
-
作成したHTMLフォーム画面の記...
-
テキストファイルの内容を変数...
-
jsonテキストデータの並び替え...
-
jQuery.getでレスポンスデータ...
-
HTMLファイルにテキストファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ajaxでhtmlを返して画面に描画…...
-
大量のデータを表として展開す...
-
Response.Write(変数)
-
ローカルネットワーク内での502...
-
【Ajax】改行を含めたデータを...
-
AjaxでDBと連携した動的リスト...
-
Ajaxで最新の情報が取得できない
-
Ajax、PHP、MySQLでDBからデー...
-
Rを使う際、データを読み込む時...
-
セレクトボックスのHTMLを教え...
-
JavaScript側でのXML作成の方法
-
Jqueryのキャッシュについて
-
【struts】2つのselectの連動
-
googleマップにajax
-
getJSONで受け取れるよう出力す...
-
jQueryの$.postの戻り値による...
-
jquery serializable値取得
-
CGI→AJAXへ配列の受け渡しは可...
-
python pandas ビックデータ解...
-
innerHTMLで表示完了後に、Ajax...
おすすめ情報