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ランキング
-
入力フォームの値をQRコードで...
-
jQueryを使いformでsubmitした...
-
Pythonを無料(安価)で学ぶ方...
-
ワードでA3横の画面にして、文...
-
バッチファイル 特定ウインドウ...
-
電子ピアノの音を録音したいの...
-
非同期通信で掲示板を作る際の...
-
データ受け渡しについて
-
以下のURL入れますか?皆さんは↓
-
c言語でペイントミノ
-
画像のドットの部分が抜けてい...
-
Chinapost こよパズルどう動か...
-
非同期通信を使うタイミングが...
-
Pythonのtkinterについて
-
RPA(PowerAutomate)の実装について
-
課題なのですがどなたかコード...
-
自作の地図をグーグルマップの...
-
Pythonのjupiter Labを使ってます
-
Pythonのプログラム初心者の問題
-
1w=1j.s
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カーソルの動きに合わせてDBか...
-
Ajaxでpostした内容のresponse...
-
チャットを作る
-
HTMLでリアルタイムグラフを作...
-
大量のデータを表として展開す...
-
データ受け渡しについて
-
ajaxでhtmlを返して画面に描画…...
-
Response.Write(変数)
-
Ajaxで最新の情報が取得できない
-
jQueryの$.postの戻り値による...
-
ローカルネットワーク内での502...
-
【Ajax】改行を含めたデータを...
-
Ajax、PHP、MySQLでDBからデー...
-
セレクトボックスのHTMLを教え...
-
【JavaScript】confirmのボタン...
-
DirectXとOpenGLはどちらが動作...
-
非同期通信を使うタイミングが...
-
HTMLでDBからデータを表形式で...
-
リンクを押すとEXEファイルを実...
-
saved from url=(0013)abou
おすすめ情報