gpt4 book ai didi

php - 排序不当?

转载 作者:行者123 更新时间:2023-11-30 21:52:34 26 4
gpt4 key购买 nike

我在 MySql 表中有一个单元格 page_order .当我使用 php 表单添加新行时,没有任何内容写入此单元格。我使用 jQuery sortable在数据库中有一条记录,当我们移动项目时,这个单元格 page_order已更新。

这是我的部分代码

 <?php
include 'dbs.php';
$db = new DB();
$users = $db->getRows('artists',array('order_by'=>'page_order ASC'));

if(!empty($users)): $count = 0; foreach($users as $user): $count++;
?>
<?php $idd = $_GET['id']; ?>
<?php if(($user['interline'] == NULL) && $user['event_id'] == $idd){ ?>


<div class="action-box" id="<?php echo $user['id']; ?>">
<div class="action-box-count">
<div class="count-number"><?php echo $count; ?></div>
<div class="count-time">
<div class="count-time-top">15:37 <span>21</span></div>
<div class="count-time-bottom">15:50 <span>29</span></div>
</div>
</div>
<div class="action-box-info">
<p class="user-name"><?php echo $user['fullname']; ?></p>
<p class="user-info"><?php echo $user['artist1']; ?></p>
<p class="user-info"><?php echo $user['artist2']; ?></p>
</div>
</div>

<?php } ?>
<?php if(($user['interline'] != NULL) && $user['event_id'] == $idd){ ?>



<div class="action-box action-end" id="<?php echo $user['id']; ?>">
<div class="action-box-count">
<div class="count-number"><?php echo $count; ?></div>
</div>
<div class="action-box-info">
<div class="text-center"><?php echo $user['interline']; ?></div>
</div>
</div>
<?php } ?>


<?php endforeach; else: ?>
<tr><td colspan="5">Not found......</td></tr>
<?php endif; ?>

<a href="javascript:void(0);" id="addLink" onclick="javascript:$('#openForm').toggle();"><div class="action-box action-add"></div></a>
<?php
$idint = $_GET[id];
echo "<a class='action-box action-add-small' href=\"interline.php?idi=".$idint."\"><div class='text-center'><span class='icon'>Interline</span></div> </a>";

?>


<input type="hidden" name="page_order_list" id="page_order_list" />
</div>
</div>

然后我在处理时使用ajax在文件中发送请求:

for($i=0; $i<count($_POST["page_id_array"]); $i++)
{
$query = "
UPDATE artists
SET page_order = '".$i."'
WHERE id = '".$_POST["page_id_array"][$i]."'";
mysqli_query($connect, $query);
}

Ajax

$(document).ready(function(){
$( "#order_list" ).sortable({
placeholder : "ui-state-highlight",
update : function(event, ui)
{
var page_id_array = new Array();
$('#order_list div').each(function(){
page_id_array.push($(this).attr("id"));
});
$.ajax({
url:"order.php",
method:"POST",
data:{page_id_array:page_id_array},
success:function(data)
{
alert(data);
}
});
}
});


});

问题是:1.写入db的步骤错误,即不是1,2,3,4,5,而是如下:10,22,27,30,332. 第二个问题是当我检查 <?php if(($user['interline'] != NULL) 时输出另一个字符串 - 排序和数字通常表现得很糟糕。

请告诉我如何解决这个问题?

最佳答案

你看到的差距来自这部分:

$('#order_list div').each(function(){
page_id_array.push($(this).attr("id"));
});

您正在选择 #order_list 中的所有 div。这会用所有没有 ID 的 div 的空值填充您的数组...由于您在索引中造成了空白,因此导致了一个带有空白的有序列表。 (反正这并不重要,因为它们只是为了订购...)

$('#order_list div.action-box').each(function(){
page_id_array.push($(this).attr("id"));
});

在这里,仅定位操作框(似乎包含 ID)将确保您迭代正确的 div。

关于php - 排序不当?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46608511/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com