我想知道为什么我的jquery UI没有创建一个我可以解析为php的数组,这是我的列表
<ul id="sortable">
<li id="firstname" class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>firstname</li>
<li id="lastname" class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>lastname</li>
<li id="title" class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>title</li>
<li id="book_title" class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>book_title</li>
</ul>
这是jQuery
<script>
$(function() {
$( "#sortable" ).sortable({
placeholder: "ui-state-highlight",
opacity: 0.6,
update: function(event, ui) {
var info = $(this).sortable("serialize");
alert(info);
$.ajax({
type: "POST",
url: "home.php",
data: info,
context: document.body,
success: function(){
}
});
}
});
$( "#sortable" ).disableSelection();
});
</script>
thi是alert(info)给出的结果
book[]=title
我希望能够将数组发布到php,以便用户可以根据他在列表中更改输出的顺序来更改输出的顺序。有人帮忙
从这里编辑,我的home.php文件
<?php
header("Content-type: text/xml");
include_once("config.php");
parse_str($_POST['data'], $order);
echo $order;
$query = "SELECT `author`.`surname`,`author`.`firstname`,`publication`.`title`,`book`.`book_title` FROM author, book, publication ";
$resultID = mysql_query($query, $conn) or die("Data not found.");
$xml_output = "<?xml version=\"1.0\"?>\n";
$xml_output .= "<entries>\n";
for($x = 0 ; $x < mysql_num_rows($resultID) ; $x++){
$row = mysql_fetch_assoc($resultID);
$xml_output .= "\t<entry>\n";
foreach($order as $col){
$xml_output = "\t\t<$col>" . $row[$col] . "</$col\n";
}
$xml_output .= "\t</entry>\n";
}
$xml_output .= "</entries>";
echo $xml_output;
?>
答案 0 :(得分:3)
在sortable.serialize
documentation中说:
...默认情况下,通过查看格式中每个项目的ID来工作 “setname_number”,它吐出像哈希一样的哈希 “的setName [] =&数放大器;的setName [] =号码”。
但是,您的元素集中只有一个符合此模式的id
- book_title
(setname
为'book'
,number
为{{ 1}})。所有其他人都不符合这种模式,我想这只是被忽略了。
最简单的方法就是将你的ID改为:
'title'
您仍然可以使用原始值,但是您必须提供自己的post_firstname
post_lastname
post_title
post_booktitle
模式(如果模式看起来像expression
,则可能key
)为序列化/()(.+)/
。或者您可以考虑另一种选择 - toArray方法。