使用php,如何保存段落标记的属性值?

时间:2011-06-06 08:04:56

标签: php jquery attributes

我有一个页面,我可以使用jQuery UI draggable移动段落标记。每当我移动段落标记时,该标记的内联样式都会更改为:

position: relative; left: 280px; top: 300px;

我的表格正好在那之下。当我提交表单时,我希望php保存这两个属性值(顶部和左侧)。

如何保存段落标记的多个属性值?

我找到THIS回答,但我不明白$ attrs数组的来源或内容。也许这就是我所缺少的?

3 个答案:

答案 0 :(得分:2)

一种方法是使用submit() jQuery事件处理程序,这样在表单发送之前,您将读取段落的位置并将其存储在隐藏的表单字段中。

另一种方法是在用户更改段落位置时更新一些隐藏的表单字段。

(编辑:您引用的答案是关于在服务器方面处理HTML DOM,而这个问题实际上是关于客户端方面。这更像是Javascript问题比PHP一个)

答案 1 :(得分:1)

我为应用程序使用隐藏标记,该标记保存了多个DOM元素的位置。只需记住在PHP脚本中收到它们时检查它们的值。

$('#element')。css('top')和.css('left')将为您提供值。 编辑: 或者,您可以使用position通过.position()或.offset()

获取其值
position = $('#element').position();
// or
position = $('#element').offset();
// position.left and position.top

您应该选择哪一个depends on how the element is positioned.

答案 2 :(得分:0)

您无法直接从PHP执行此操作。除非浏览器将该信息发送到脚本,否则PHP不会知道浏览器中发生的任何事情。

您需要手动发送topleft值。最好的方法是收听提交事件:

$('#myForm').submit(function(e) {
    e.preventDefault();
    var position = $('#yourP').position();

    $('<input/>', {type: 'hidden', name: 'left', value: position.left}).appendTo(this);
    $('<input/>', {type: 'hidden', name: 'top', value: position.top}).appendTo(this);

    this.submit(); // submit the form with the extra values
});

然后,您可以在PHP脚本中使用$_POST['top']$_POST['left'](或表格使用GET时的GET等效项)访问这些值。