Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用JQuery可排序新值更新MySQL_Php_Jquery_Html_Mysql_Jquery Ui Sortable - Fatal编程技术网

Php 使用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"

问题:如何使用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;
    }

}

?>
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中的新值更新数据库。你明白吗?:)