Php 使用JQuery可排序新值更新MySQL
问题:如何使用JQuery可排序列表中的新值更新MySQL数据库 这是我目前的代码:Php 使用JQuery可排序新值更新MySQL,php,jquery,html,mysql,jquery-ui-sortable,Php,Jquery,Html,Mysql,Jquery Ui Sortable,问题:如何使用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"
<?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;
}
}
?>
Array ( [0] => ABC [1] => DEF [2] => GHI ) Array ( [0] => ABC [1] => DEF [2] => GHI ) Array ( [0] => ABC [1] => DEF [2] => GHI )
但是如何使用变量$query
执行实际的SQL查询呢
$\u POST['pos']
数组结构:
<?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;
}
}
?>
Array ( [0] => ABC [1] => DEF [2] => GHI ) Array ( [0] => ABC [1] => DEF [2] => GHI ) Array ( [0] => ABC [1] => DEF [2] => GHI )
我是这样做的:
$query ="UPDATE test SET order='" . $value . "' WHERE id='" . $random_function . "'";
在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));
试试这个
$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);
你的$_POST['pos']结构是什么?你是什么意思?我认为它创建了一个具有值的数组。我知道它是一个数组。那里的阵列结构是什么?你能把这个问题补充一下吗。使用print_r()。再次查看问题。这就是您想要的吗?为什么不在foreach loopOkey中使用mysql\u查询,谢谢!:)但是我如何在代码中使用它呢?如何使用行$this->db->executeMultiQuery(内爆(“;”,$statements));在我的密码里有没有办法只使用一个常规的mysql_查询()来插入值?我使用类mysqli($connection Is new mysqli()):if($connection->multi_query($query)){$results=array();$I=0;do{if($result=$connection->store_result()){while($row=$result->fetch_array(mysqli_ASSOC)){$results[$I]]=$row;}$result->free();}$i++;}while($connection->next_result());return$results;}end($value)替换为end($array)。答案中已编辑。仍然只需使用最后一个JQuery可排序值更新数据库。我没有收到任何错误消息。我将ABCDEFGHI重新排列为GHIDEFABC,它刚刚用数据库中的ABC更新。但如果我输入echo$value;在foreach循环中,它显示所有值:你需要在数据库中更新这个。GHIDEFABC或ABCDEFGHI。我是currect吗?那么是这样吗?$array[]=$value;使用$str=$str.$value;并将end($array)替换为$str.Yes!我有一个JQuery可排序列表。变量$value从列表中给我一个值(ABCDEFGHI)。类似于list1=ABC、list2=DEF和list3=GHI。使用JQuery可排序列表,我可以将这三个值重新排列为我喜欢的任何值。我想用$value中的新值更新数据库。你明白吗?:)