Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PHP数组到表单_Php_Html_Forms_Foreach - Fatal编程技术网

从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({

我有一个PHP函数,可以自动存储各种对象的位置

$(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而不是$position

foreach循环内部的内容有什么区别?两者都是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 . '" />'; 
} 
?>