从PHP数组到表单
我有一个PHP函数,可以自动存储各种对象的位置从PHP数组到表单,php,html,forms,foreach,Php,Html,Forms,Foreach,我有一个PHP函数,可以自动存储各种对象的位置 $(function(){ $("#sortable").sortable(); $("#sortable").disableSelection(); $('#btn').click(function(){ //var dataItem = $("#sortable").sortable("serialize"); //alert(dataItem); $.ajax({
$(function(){
$("#sortable").sortable();
$("#sortable").disableSelection();
$('#btn').click(function(){
//var dataItem = $("#sortable").sortable("serialize");
//alert(dataItem);
$.ajax({
url: 'save-sorting-position.php',
data : dataItem,
success: function(data) {
alert('Positions saved');
}
});
});
});
然后将它们存储在save-sorting-position.php中,该文件包括:
<?php
$arr = unserialize($_REQUEST["item"]);
foreach($arr as $index => $position)
{
//store the position here
}
?>
我想把这个数组传递到一个表单中。我试着使用这样的东西(以实际的形式):
但事情没有解决。我错过了什么?谢谢 首先,您要覆盖原始的
$position
变量:
foreach($position as $position)
你喜欢:
foreach($position as $pos)
您错误地回显了$position而不是$pos,在echo语句的末尾添加了一个分号,并且您已经开始了value=的双引号,但没有结束它。纠正
<?php
foreach($position as $pos)
{
echo '<input type="hidden" name="item[]" value="' . $pos . '" />';
}
?>
在foreach echo语句内部,尝试将其用作$pos而不是$positionforeach循环内部的内容有什么区别?两者都是sameI,我已经将其更正为foreach($position as$pos),当我在浏览器中加载页面时,我会在实际页面内容中打印
}?>
,出于某种原因。Echo末尾的分号是否确定JS serialize操作正在以PHP自己的序列化格式生成序列化数据?为什么不使用JSON,这样您就知道您得到了什么?进行了修改,但仍然得到了;}>代码>在浏览器中打印。我不这么认为。因为这是印刷的地方。您是否如我所说更改了引号?这是整个页面的代码,尽管没有其他php函数。当我将其放入其中时,我得到了E_通知:[type:8]--未定义变量:position--在第50行E_警告:[type:2]--为foreach()提供的参数无效--在第50行
;这是因为我还没有上传PHP函数,但是…我没有收到错误消息;相反,;}>代码>在浏览器中打印。
<?php
foreach($position as $pos)
{ echo '<input type="hidden" name="item[]" value="' . $pos . '">'; } ?>
foreach($arr as $val)
<?php
foreach($position as $pos)
{
echo '<input type="hidden" name="item[]" value="' . $pos . '" />';
}
?>