当前位置: 首页 > 知识库问答 >
问题:

更改PHP/Ajax脚本来使用Meekrodb?

水铭晨
2023-03-14

我试图将一个非常小的项目(可以通过拖放重新排列的数据列表)从通常的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一起工作,我被卡住了。

共有1个答案

阮华美
2023-03-14

过了很久我终于找到了解决办法。

我真的不知道或不理解在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; 
}

?>

我会把这个留在这里,但如果有人知道一个更好更干净的解决方案,我会很高兴的!:)

 类似资料:
  • 问题内容: 我一直在用这个把头砸在砖墙上,我已经在stackoverflow上尝试了很多解决方案,但找不到一个可行的方案! 基本上,当我发布我的AJAX时,PHP返回JSON,但是AJAX显示Undefined而不是值: JS : PHP的 : firebug的JSON结果 : AJAX将JSON结果显示为Undefined,我不知道为什么。我尝试显示添加和。我也曾尝试将其更改为and:尽管仍然没

  • 问题内容: 我正在尝试设置回合部署脚本。我在使用远程登录时遇到了一些麻烦。在远程服务器上创建数据库时,我们需要使用sql帐户(而不是计算机或域,这是针对Server 2008 R2 SP1上的MSSQL 2008R2)登录。有没有办法为回旋连接和运行脚本提供不同的凭据,因为我在文档中没有看到它?谢谢。 问题答案: 如果指定连接字符串而不是服务器名称和数据库名称,则还可以设置凭据。 来自:https

  • 问题内容: 使用javascript设置内联CSS值很容易。如果我想更改宽度,并且我有这样的html: 我需要做的是: 它将更改内联样式表的值。通常这不是问题,因为内联样式会覆盖样式表。例: 使用此Javascript: 我得到以下内容: 这是一个问题,因为当我有以下条件时,不仅要更改内联值,而且要在设置宽度之前先查找宽度: 返回的值为Null,因此,如果我有Javascript需要知道某种东西的

  • 问题内容: 我有一个div,其中包含数据库的一些文本: 以及链接列表: 该过程应如下所示: 点击链接 Ajax使用链接的URL通过GET将数据传递到php文件/同一页面 PHP返回字符串 div更改为此字符串 问题答案: 并在您的列表中添加事件

  • 问题内容: 我有由函数 .push 制成的数组。数组中的数据非常大。如何将此最佳方式发送到PHP脚本? script.php: 最好的方法是什么? 问题答案: 将您的数据字符串编码为JSON。 在你的PHP中 注意 通过POST发送数据时,它必须作为键值对。 从而 是错的。而是:

  • 问题内容: 假设我在SQL Server Management Studio中为某些表添加了新列。当我按保存时,有什么方法可以获取执行的更改脚本? 我要实现的是将相同的更改应用于其他数据库(出于调试目的,我们为每个开发人员都有一个单独的数据库)。 问题答案: 我假设您在MS SSMS中使用表设计器。 在设计器中进行更改,然后在点击之前,进入菜单并选择。