2011-07-12 4 views
0

番号を入力してアイテムを並べ替えることを許可します。 5つの項目入力シーケンスを使用する場合のソート順の更新方法は?

Id, Item, Display Order 
1, Item a, 1 
2, Item b, 2 
3, Item c, 3 
4, Item d, 4 
5, Item e, 5 

があるのであれば、ユーザーは、5つの入力ボックスを取得し、彼らは番号を提供してアイテムを並べ替えるには、更新をクリックすることができます。ユーザーが上記の新しい位置として125を入力すると、max(5)に設定され、他の項目が更新されます。ユーザーが-10を入力すると、その項目が1になり、他の項目が更新されます。

ユーザーがフォームを送信すると、注文を更新する方法がわかりません。どんな助けもありがとう。私はデフォルト値としてdisplay_order値をcontainting 5つの入力ボックスをユーザに5行を提示する上記のデータを使用していただきありがとうございます

UPDATE

。ユーザーがリストの順序を変更したい場合は、入力ボックスの値を更新して「送信」をクリックしてデータベースを更新できます。私はORDER BYのdisplayorderクエリを使ってreocrdをリストしています。

ご質問、このような形の何かについてどのように

+2

少なくとも、あなたはソートが決定された明確な基準を提供する必要があります。ユーザーが「5」を入力した場合、どのような順序で項目を再表示したいのですか?ユーザーが '3'を入力すればどうなるでしょうか?彼らが '1'を入力すればどうなるでしょうか? – deefour

+0

@deefour 1を入力すると、それを入力したアイテムだけがリストアイテムの先頭になります。意味がありますか?項目は表示順に表示されます.1は先頭に表示されます。 – Kay

+0

実際に作業するコードを教えてください。 SQLでUPDATEクエリを処理する方法が不明ですか? '$ _POST'スーパーグローバルから値を取得するのに問題がありますか?あなたの質問の根はまだかなり不明です。 – deefour

答えて

2

を依頼してください。

<form ...> 
<table> 
<tr> 
    <th>Item A</th> 
    <td><input type="text" name="order[1]" value="1" /></td> 
</tr> 
<tr> 
    <th>Item B</th> 
    <td><input type="text" name="order[2]" value="2" /></td> 
</tr> 
etc... 

名フィールドの配列の添字値がその特定のアイテムのIDです。フォームのは、提出された場合、あなたのような何かをしたい:

foreach($_POST['order'] as $key => $val) { 
    $val = intval($val); 
    $key = intval($key); 
    $sql = "UPDATE yourtable SET DisplayOrder=$val WHERE id=$key;"; 
    mysql_query($sql) or die(mysql_error()); 
} 

を次に検索のために、それは単にだろう:

SELECT ... 
FROM yourtable 
ORDER BY DisplayOrder ASC 

ユーザーは、彼らが望む任意の番号を入力し、それがためにそれら次第です彼らが正しい順序で昇順になっていることを確認してください。あなたのスクリプトは、検索時にそれらの数字を記録して並べ替えるだけです。

+0

あなたの答えはMarcです。実際にはこれはdisplay_orderフィールドに複数の同じ値を残して、3から4の現在の順序を持​​つItem3の変更を想像してください。上記のItem3の順序は4に変更され、Item4の表示順序も4となります?? – Kay

+0

さて、あなたはデータベース作業を行う前に、 "おい、あなたは重複した値を持っていますか?"と言う前に確認することができます。しかし、ある時点では、ユーザーが提供するものを受け入れ、それに同意する必要があります。 –

+0

私はあなたがすでに提案したことをすることができましたが、私はこれを避けようとしていますので、ここで質問しました。とにかくThx。 – Kay

1

jQuery Sortableを使ってみませんか?はるかに簡単で、ユーザーフレンドリーで、 "重複した注文値"の問題はありません。私にとって

http://jqueryui.com/demos/sortable/

関連する問題