0

質問: JQuery のソート可能なリストからの新しい値で MySQL データベースを更新するにはどうすればよいですか?

これまでの私のコードは次のとおりです。

<?php

echo '
<form action="" method="post"> 
<ul id="sortable">';

$array = str_split("ABCDEFGHI", 3);

for($i = 0; $i < count($array); $i++) {
  echo '
    <li class="ui-state-default">
    <span class="ui-icon ui-icon-arrowthick-2-n-s"></span>' . $array[$i] . '<input type="hidden" name="pos[]" value="'.$array[$i].'">
    </li>';
}

echo '
</ul><br>

<input type="submit" name="submit" value="Show order">
</form>

</body>
</html>';

if(isset($_POST['submit'])) {
    foreach($_POST['pos'] as $value){
        echo $value;
    }

}

?>

情報:

$valueMySQLデータベースを更新したいJQueryのソート可能なリストからの新しい値を保持します。ただし、foreach 以外では使用できません。どうすればそれができますか?次のように (foreach で) SQL クエリを保持する変数を作成できることはわかっています。

$query ="UPDATE test SET order='" . $value . "' WHERE id='" . $random_function . "'";

$queryしかし、変数を使用して実際の SQL クエリを実行するにはどうすればよいでしょうか。

$_POST['pos']配列構造:

Array ( [0] => ABC [1] => DEF [2] => GHI ) Array ( [0] => ABC [1] => DEF [2] => GHI ) Array ( [0] => ABC [1] => DEF [2] => GHI )
4

2 に答える 2

1

私はこのようにやっています:

JavaScript で

var ids = [];
rows.each(function (index, value)
{
    ids.push($(value).attr("data-item-id"));
});
$.post('/url/to/save/order/, {orderMap:JSON.stringify(ids)}, function() {}, 'json');

PHPで:

$orderMap = json_decode(stripslashes($this->getPost("orderMap")));
$statements = array();
foreach ($orderMap as $itemId => $position) {
    $statements[] = sprintf("UPDATE `{$tableName}` SET `{$fieldName}`=%d WHERE `{$fieldIdName}`=%d", $position, $itemId);
}
$this->db->executeMultiQuery(implode(";", $statements));
于 2013-03-14T16:31:51.823 に答える
1

これを試して 。

$str = '';
if(isset($_POST['submit'])) {
  foreach($_POST['pos'] as $value){
    $str = $str.$value;
  }
 }

$query ="UPDATE test SET order='" . $str . "' WHERE id='" . $random_function . "'";
mysql_query($query);
于 2013-03-15T09:55:55.527 に答える