更改 PHP/AJAX 脚本以使用 MeekroDB?
Changing a PHP/AJAX script to work with MeekroDB?
我正在尝试“转换”一个非常小的项目(可以通过拖放重新排列的数据列表),嗯,我想通常是 PHP、mysqli 和 ajax改为使用 MeekroDB。
它以其原始形式工作正常(这是 Ajax 使用的小 PHP 文件):
<?
require_once __DIR__.'/../ini.php';
$SortingOrder = isset($_POST["SortingOrder_ids"]) ? $_POST["SortingOrder_ids"] : [];
if(count($SortingOrder)>0){
for($order_no= 0; $order_no < count($SortingOrder); $order_no++)
{
$query = "UPDATE SortingTable SET SortingOrder = '".($order_no+1)."' WHERE ID = '".$SortingOrder[$order_no]."'";
mysqli_query($con, $query);
}
echo true;
}else{
echo false;
}
?>
但现在我正在尝试使用 MeekroDB,所以什么也没做:
<?
require_once __DIR__.'/../ini_meekro.php';
$SortingOrder = isset($_POST["SortingOrder_ids"]) ? $_POST["SortingOrder_ids"] : [];
if(count($SortingOrder)>0){
for($order_no= 0; $order_no < count($SortingOrder); $order_no++)
{
DB::query("UPDATE SortingTable SET SortingOrder=%i, WHERE ID=%i", $order_no+1, $SortingOrder[$order_no]);
};
echo true;
}else{
echo false;
}
?>
javascript/jQuery 脚本未更改。当然,我已经更新了列表最初是如何从数据库中获取并显示在网站上的,而且效果很好。我也仍然可以拖动东西,但它永远不会保存新的排序顺序。
我以前从未用 Ajax 做过任何事情。我最初使用了此处找到的指南:http://learninfinity.info/drag-and-drop-table-row-sorting-ajax-php-and-mysqli/ 并且一切正常。但我希望它能与 MeekroDB 一起使用,但我被卡住了。
找了很久我终于找到了解决办法。
我真的不知道或理解 MeekroDB 中两种更新方式的巨大差异,但使用另一种方式并使变量有效。
<?
require_once __DIR__.'/../ini_meekro.php';
$SortingOrder = isset($_POST["SortingOrder_ids"]) ? $_POST["SortingOrder_ids"] : [];
if(count($SortingOrder)>0){
for($order_no= 0; $order_no < count($SortingOrder); $order_no++)
{
$NewOrderNumber = $order_no+1;
$EntryID = $SortingOrder[$order_no];
//DB::query("UPDATE SortingTable SET SortingOrder=%i, WHERE ID=%i", $order_no+1, $SortingOrder[$order_no]);
DB::update('SortingTable', ['SortingOrder' => $NewOrderNumber], "ID=%i", $EntryID);
};
echo true;
}else{
echo false;
}
?>
我会把它留在这里,但如果有人知道更好更清洁的解决方案,我将非常高兴! :)
我正在尝试“转换”一个非常小的项目(可以通过拖放重新排列的数据列表),嗯,我想通常是 PHP、mysqli 和 ajax改为使用 MeekroDB。
它以其原始形式工作正常(这是 Ajax 使用的小 PHP 文件):
<?
require_once __DIR__.'/../ini.php';
$SortingOrder = isset($_POST["SortingOrder_ids"]) ? $_POST["SortingOrder_ids"] : [];
if(count($SortingOrder)>0){
for($order_no= 0; $order_no < count($SortingOrder); $order_no++)
{
$query = "UPDATE SortingTable SET SortingOrder = '".($order_no+1)."' WHERE ID = '".$SortingOrder[$order_no]."'";
mysqli_query($con, $query);
}
echo true;
}else{
echo false;
}
?>
但现在我正在尝试使用 MeekroDB,所以什么也没做:
<?
require_once __DIR__.'/../ini_meekro.php';
$SortingOrder = isset($_POST["SortingOrder_ids"]) ? $_POST["SortingOrder_ids"] : [];
if(count($SortingOrder)>0){
for($order_no= 0; $order_no < count($SortingOrder); $order_no++)
{
DB::query("UPDATE SortingTable SET SortingOrder=%i, WHERE ID=%i", $order_no+1, $SortingOrder[$order_no]);
};
echo true;
}else{
echo false;
}
?>
javascript/jQuery 脚本未更改。当然,我已经更新了列表最初是如何从数据库中获取并显示在网站上的,而且效果很好。我也仍然可以拖动东西,但它永远不会保存新的排序顺序。
我以前从未用 Ajax 做过任何事情。我最初使用了此处找到的指南:http://learninfinity.info/drag-and-drop-table-row-sorting-ajax-php-and-mysqli/ 并且一切正常。但我希望它能与 MeekroDB 一起使用,但我被卡住了。
找了很久我终于找到了解决办法。
我真的不知道或理解 MeekroDB 中两种更新方式的巨大差异,但使用另一种方式并使变量有效。
<?
require_once __DIR__.'/../ini_meekro.php';
$SortingOrder = isset($_POST["SortingOrder_ids"]) ? $_POST["SortingOrder_ids"] : [];
if(count($SortingOrder)>0){
for($order_no= 0; $order_no < count($SortingOrder); $order_no++)
{
$NewOrderNumber = $order_no+1;
$EntryID = $SortingOrder[$order_no];
//DB::query("UPDATE SortingTable SET SortingOrder=%i, WHERE ID=%i", $order_no+1, $SortingOrder[$order_no]);
DB::update('SortingTable', ['SortingOrder' => $NewOrderNumber], "ID=%i", $EntryID);
};
echo true;
}else{
echo false;
}
?>
我会把它留在这里,但如果有人知道更好更清洁的解决方案,我将非常高兴! :)