Ir ao conteúdo
  • Cadastre-se
MarcosCM

PHP RESOLVIDO (Drag and Drop) Alterar ordem dos # tambem

Recommended Posts

 

Usei um código de um tutorial na internet sobre listas que podem ser alteradas e salvas em uma database php mysql, deu tudo certo só que as ordem dos números na coluna ''#'' não altera se mudar a ordem do resto de itens da tabela

 

https://prnt.sc/m4xdx0

 

O que eu queria fazer era que os números da coluna ''#'' mudassem de acordo com a posição de certo item da lista, tipo se o item era terceiro colocado, e for pra quinto, o numero da coluna ''#'' iria de #3 para #5

 

Link da demo do código ja funcionando: http://demo.itsolutionstuff.com/demo/demo-php-dynamic-drag-and-drop-table-rows-using-jquery-ajaxexample.html

códigos:

 

HTML + PHP da pagina que fica a tabela 

 

<table class="table table-bordered">
            <tr>
                <th>#</th>
                <th>Name</th>
                <th>Defination</th>
            </tr>
            <tbody class="row_position">
            <?php


            require('db_config.php');


            $sql = "SELECT * FROM sorting_items ORDER BY position_order";
            $users = $mysqli->query($sql);
            while($user = $users->fetch_assoc()){


            ?>
                <tr  id="<?php echo $user['id'] ?>">
                    <td><?php echo $user['id'] ?></td>
                    <td><?php echo $user['title'] ?></td>
                    <td><?php echo $user['description'] ?></td>
                </tr>
            <?php } ?>
            </tbody>
        </table>

SCRIPT  da pagina que fica a tabela (mesma pagina do codigo acima)

 

<script type="text/javascript">
    $( ".row_position" ).sortable({
        delay: 150,
        stop: function() {
            var selectedData = new Array();
            $('.row_position>tr').each(function() {
                selectedData.push($(this).attr("id"));
            });
            updateOrder(selectedData);
        }
    });


    function updateOrder(data) {
        $.ajax({
            url:"ajaxPro.php",
            type:'post',
            data:{position:data},
            success:function(){
                alert('your change successfully saved');
            }
        })
    }
</script>

AjaxPro.php

<?php 


require('db_config.php');


$position = $_POST['position'];


$i=1;
foreach($position as $k=>$v){
    $sql = "Update sorting_items SET position_order=".$i." WHERE id=".$v;
    $mysqli->query($sql);


	$i++;
}


?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde @MarcosCM

 

A coluna "#" que você menciona no caso, seria o ID que se encontra dentro da tabela "sorting_items". Para você colocar números ordenados, você pode criar uma variável dentro do loop para fazer essa contagem.

 

Por exemplo:

 

  

<?php
            require('db_config.php');

            $sql = "SELECT * FROM sorting_items ORDER BY position_order";
            $users = $mysqli->query($sql);
			
            $cont = 1; //Declara o contador

            while($user = $users->fetch_assoc()){

            ?>
                <tr  id="<?php echo $user['id'] ?>">
                    <td><?php echo $cont ?></td> <!-- Mostra o contador -->
                    <td><?php echo $user['title'] ?></td>
                    <td><?php echo $user['description'] ?></td>
                </tr>
            <?php  
			
                $cont++; //soma +1 ao contador
            }

           ?>

 

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@MarcosCM Qual foi a solução encontrada?  O post acima resolveu?

Se sim,  por gentileza, marque como resolvido  clicando no icone de bolinha com V, caso contrário, por gentileza, poste como solucionou, para futuras pesquisas dos usuários.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×