私はしばらくの間これに苦労してきましたが、解決策が得られないようです。
JQuery-ui を使用して、並べ替え可能なリストを作成しました。位置が変更されるたびに、同じ位置に変更する必要がある色が背後にあります。
そのため、リストが変更されるたびに、ソートを処理する必要がある PHP ファイルに対して AJAX 要求を行います。色の並べ替え方法に関するすべてのデータは正常に機能しています。ただし、これをデータベース内のテーブルに更新する必要があります。
デバッグ時に、AJAX リクエストから返されたデータ (console.log) をエコーすることで、データがどのように並べ替えられるべきかを正しく理解できます。しかし、myqsli_query($the_query) を追加するとすぐに、同じクエリが 2 回返されます。その後、並べ替えが台無しになり、その部分からすべてが下り坂になります。
AJAX リクエストが送信されるコードの一部:
foreach ($status_colors as $values) {
//rearranges the colors with the new positions
for ($i = 0; $i < count($positions); $i++) {
$new_array[$positions[$i]] = $values[$i];
}
//sorting by key starting with 0
ksort($new_array);
//since the colors are saved in the table like this;
//red,green,yellow,purple,etc. I have to implode
$new_status_color = implode(',', $new_array);
//return the right order of colors.
echo $new_status_color;
//Setting up the query with the new status_color the id here is just a example, however its actually going through about 20 records to update
$update_query = 'UPDATE cars SET status_color="'. $new_status_color .'" WHERE id=1';
//If i echo out $update_query, sort the list a couple of times
//I get the result that I want, but as soon as I use the following it breaks
//This breaks it, on the first sort it goes fine. But when I sort again, I get the same query back, as the first one.
mysqli_query($link, $update_query);
}
問題の例: リストに 5 つの項目があり、並べ替え可能であるとします。
- アイテム 1 - 緑
- アイテム 2 - 黄
- アイテム 3 - 赤
- アイテム 4 - 青
- アイテム 5 - 黒
アイテム 5 をアイテム 1 の上に変更すると、次のリストが作成されます。
- アイテム 5 - 黒
- アイテム 1 - 緑
- アイテム 2 - 黄
- アイテム 3 - 赤
- アイテム 4 - 青
mysql_query を使用すると、これは初めて正常に機能しますが、最初のリスト (項目 1 - 5) に戻すと、前のリストから SQL が返されます。
それが少し解決したことを願っています。そうでない場合は、質問して、より理解しやすくするようにしてください。
また、追加したいのですが、PHP と JQuery AJAX でキャッシュを無効にしようとしましたが、これも役に立ちませんでした。