0

私はしばらくの間これに苦労してきましたが、解決策が得られないようです。

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. アイテム 1 - 緑
  2. アイテム 2 - 黄
  3. アイテム 3 - 赤
  4. アイテム 4 - 青
  5. アイテム 5 - 黒

アイテム 5 をアイテム 1 の上に変更すると、次のリストが作成されます。

  1. アイテム 5 - 黒
  2. アイテム 1 - 緑
  3. アイテム 2 - 黄
  4. アイテム 3 - 赤
  5. アイテム 4 - 青

mysql_query を使用すると、これは初めて正常に機能しますが、最初のリスト (項目 1 - 5) に戻すと、前のリストから SQL が返されます。

それが少し解決したことを願っています。そうでない場合は、質問して、より理解しやすくするようにしてください。

また、追加したいのですが、PHP と JQuery AJAX でキャッシュを無効にしようとしましたが、これも役に立ちませんでした。

4

0 に答える 0