1

Jquery コード

    $(function() {
$("#list .sections").sortable({ opacity: 0.5, cursor: 'move',update: function() {

        var order = $(this).sortable("serialize") + '&update=order';

                    $('#form').submit(function()
                    {
                        $.ajax
                        ({
                            type: "POST",
                            url: "update.php",
                            data: order,
                            success: function()
                            {
                            alert(success)
                            }
                        });                        
                    });

    }                                 
    });
});

HTML および PHP コード

      <form action="" method="post" id="form">  
  <div id="list">
    <div class="sections">
    <div id="response"> </div>

      <?php
        include("connection.php");
        $query  = "SELECT * FROM dragdrop ORDER BY listnumber ASC";
        $result = mysql_query($query);
        while($row = mysql_fetch_array($result, MYSQL_ASSOC))
        {
            $id = stripslashes($row['id']);
            $text = stripslashes($row['text']);
        ?>

      <div id="listOrder_<?php echo $id ?>" class="box_inner">
          <div id="section_head">
            <?php echo $text?>  
            <span class="id"><?php echo $id; ?></span>
                            <input type="hidden" name="value" value="need value" />
          </div>
          <div id="section_body">
                            <h2> Drag Me </h2>
          </div>
      </div>
      <?php } ?>

    </div>
          <input type="submit" id="save_element" value="Save element" style="margin-left: 40px" />
        </div>
      </form>

私の質問は、serialize を使用して listOrder_id の下にあるすべての値を取得する方法です。

私は試してみました

var value = $('input[name="value"]').val();

$.(value).sortable("serialize");

しかし、それを機能させることはできません、私を助けてください

ありがとうございました

4

1 に答える 1

0

フォームと隠しフィールドを使用する必要はありません。

マークアップの例:

<div id="container">
    <span data-name="a"></span>
    <span data-name="b"></span>
    <span data-name="c"></span>
  </div>

脚本:

<script>
var obj = {};
$('#container span').each(function(index){
    var name = $(this).data('name');
    obj[index] = [];
    obj[index] = {'name' : name};
});
</script>

$.post('update.php', {'data' : obj}); //update list

各行に 1 種類のデータのみを格納する場合は、配列を使用してループ内でプッシュするだけです。

于 2012-09-02T06:19:13.373 に答える