使用Ajax将表排序为mysql

时间:2013-04-18 20:41:12

标签: php jquery ajax

我已经开发了4个月的网站了,我觉得需要添加一个拖放表,使用ajax来记录mysql数据库中的序列! 我已经完成整个网络,无法找到适合的教程,所以我决定加入它们(教程)。

这就是我提出的:

HTML:

<table cellpadding="0" cellspacing="0" id="tableceleb">
                    <tr>
                        <td style="width: 200px; color: #72A836; font-weight: bold; padding-left: auto; padding-right: auto;">Momentos <a href="#" rel="group" id="opener"><img src="images/add.png" title="Inserir Novo Momento!" id="add_momento" /></a></td>
                        <td id="nome_cantico">Nome do Cântico</td>
                        <td width="40px"></td>
                        <td width="40px"></td>
                        <td></td>
                        <td style="border-right: 0px;"></td>
                    </tr>
                    <tbody>


// Start of the "draggable" table rows
                    <?php
                        if (mysql_num_rows($query_escolhas) > 0) {
                            while ($row = mysql_fetch_array($query_escolhas)) {
                                $momento = $row['nome'];
                                echo '<tr id="recordsArray_'.$row['id_momento'].'">';
                                echo '<td style="width: 200px; font-weight: bold;">'.$momento.' <a href="vercelebracao.php?id='.$id_celebracao.'&remover_mom='.$row['id_momento'].'"><img src="images/fechar.png" height="16" width="16" title="Remover momento!" /></a> </td>';
                                echo '<td id="nome_cantico_black">'.$row['nome_cantico'].'</td>';
                                echo '<td><img src="images/ppt1.png" height="32" width="32" title="Mostrar texto para colar para o ppt."/></td>';
                                if ($row['pdf'] === 'N') {
                                    echo '<td width="32px"></td>';
                                } else{
                                    echo '<td><img src="images/pdf.png" height="32" width="32" title="Mostrar pdf."/></td>';
                                }
                                echo '<td><a href="#" class="addcantico_momemnto_bot" title="Adicionar Cântico!">Adicionar</a></td>';
                                echo '<td style="border-right: 0px;"><a href="#" class="addcantico_momemnto_botgrey" title="Remover Cântico!">Remover</a></td>';
                                echo '</tr>';
                            }
                        }
                    ?>


            </tbody>
        </table>

使用Javascript:

$(document).ready(function(){                          
$(function() {
    $("#tableceleb tbody").sortable({ opacity: 0.9, cursor: 'move', axis: 'y', update: function() {
        var order = $(this).sortable("serialize") + '&action=updateRecordsListings&celeb=<?php echo $id_celebracao ?>'; 
        $.post("updateDB.php", order);      
    }                                         
    });
});

}); 

注意:$ id_celebracao是我们用来识别它对应的table_id的行之一。

然后我们有updateDB.php,它对应于处理ajax部分的文件:

<?php 
require("host.php");

$action = mysql_real_escape_string($_POST['action']); 
$updateRecordsArray = $_POST['recordsArray'];
$id_celebracao = $_POST['celeb'];
if ($action === "updateRecordsListings"){

$listingCounter = 1;
foreach ($updateRecordsArray as $order=>$recordsArray) {

    $query = "UPDATE escolhas SET ordem =$listingCounter WHERE id_momento = $recordsArray AND id_celebracao=$id_celebracao";
    mysql_query($query) or die('Error, insert query failed');
    $listingCounter = $listingCounter + 1;  
}

} ?&GT;

最后我们在下面的方案中提供并解释了db表'escolhas':

enter image description here

结论:它不起作用。我真的需要你的帮助,因为它是我正在开发的网络应用程序的基本部分!

希望长篇文章不会打扰你!

此外,我不是PHP的新手,我知道mysql函数将在不久的将来被弃用,但它与项目无关。另外,这是我第一次使用Jquery和ajax!

0 个答案:

没有答案