【问题标题】:jQuery serialize value to PHPjQuery 将值序列化为 PHP
【发布时间】:2011-03-14 13:59:55
【问题描述】:

我是集成 jQuery 和 PHP 的初学者。我尝试使用 jquery 的 nestedsortable 插件并成功地将其集成到我的 kohana 2.3.4 框架中。我的问题是如何将 jquery 的序列化数组值传递给 php?这是我的代码的 sn-p。

在我看来:

<ol class="sortable">
    <li id="list_1"><div>Item 1</div>
    <li id="list_2"><div>Item 2</div>
        <ol>
            <li id="list_3"><div>Sub Item 1.1</div>
            <li id="list_4"><div>Sub Item 1.2</div>
            <li id="list_5"><div>Sub Item 1.3</div>
            <li id="list_6"><div>Sub Item 1.4</div>
        </ol>
</ol>

<script>

$(document).ready(function(){

    $('ol.sortable').nestedSortable({
        disableNesting: 'no-nest',
        forcePlaceholderSize: true,
        handle: 'div',
        helper: 'clone',
        items: 'li',
        opacity: .6,
        placeholder: 'placeholder',
        tabSize: 25,
        tolerance: 'pointer',
        toleranceElement: '> div'
    });

    $('#serialize').click(function(){
        serialized = $('ol.sortable').nestedSortable('serialize');
        $('#serializeOutput').text(serialized);
    })
});

【问题讨论】:

  • 您是否真的在使用 Kohana v2.3 开始一个新项目?

标签: jquery serialization kohana


【解决方案1】:

通过 AJAX 调用: "serialized" = 你的序列化数据。

$.ajax({
   type: "POST",
   url: "myPhpScript.php",
   data: serialized
 });

更多关于in the jQuery Docs

在您的 PHP 文件中,您可以通过 $_POST 访问这些变量。

$myVar = $_POST['myVar']; 

我不知道你的序列化变量是如何被调用的,但你总是可以“var_dump($_POST)”来查看 POST 数据的内容,并从那里弄清楚。

【讨论】:

  • 感谢 Nik 的快速回复。我的问题是如何在 php 中获取它?我正在使用 kohana 2.3.4 框架
  • 使用Arr::get($_POST, 'myVar') 避免访问不存在的变量。
  • 再次感谢。 ajax 不起作用.. 我应该把它放在脚本的哪个部分?
  • Michael,如果您的 AJAX 出于某种原因无法正常工作,那就另当别论了。建议您提出一个新问题,或者更好地搜索一下,看看它之前是否已经回答过。记得也要展示你的整个代码。
【解决方案2】:

将所有这些粘贴到您的 $(document).ready(function()/

$('ol.sortable').nestedSortable({
    disableNesting: 'no-nest',
    forcePlaceholderSize: true,
    handle: 'div',
    helper: 'clone',
    items: 'li',
    maxLevels: 10,
    opacity: .6,
    placeholder: 'placeholder',
    revert: 250,
    tabSize: 25,
    tolerance: 'pointer',
    toleranceElement: '> div'
});

$('#serialize').click(function(){
        serialized = $('ol.sortable').nestedSortable('serialize');
        $('#serializeOutput').text(serialized+'\n\n');
        $.post({
                type: "POST",
                url: "script.php",
                data: serialized
    });
})

假设您有方便的序列化按钮,只需单击该按钮即可发布数据。请注意,我只是添加了 .post 而不是 .ajax。根据我的测试(我使用的是 Django,而不是 php),.post 和 .ajax 都可以正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-27
    • 2012-05-16
    • 1970-01-01
    • 2017-06-10
    相关资源
    最近更新 更多