为foreach()循环提供的参数无效

时间:2011-03-15 19:41:22

标签: php foreach

您好Stackoverflow我希望您今天一切顺利,

我似乎遇到了一个问题,并且正在请求你的协助;

基本上我使用jQuery来操作表单,然后表单存储在会话中,并在返回页面时使用foreach循环将会话中的值返回到页面中。

问题是,如果我创建了这个foreach循环的多个实例,它会给我一个无效的参数(如果我一遍又一遍地添加相同的代码,它可以正常工作)

首先,这是代码;

的jQuery

    $(function(){
$('.add_child').click(function(){
    var attrName = $(this).attr('name');
    var count = $(this).attr('count');
    $(this).attr('count', (parseInt(count)+1))
    var input = $('<input />');
    var lineBreak = $('<br/>');
    input.attr('type','text')
    input.attr('name',attrName+"["+count+"]" ) 
    $('.children_form').append(input);
    $('.children_form').append(lineBreak);
})
$('.add_s_child').click(function(){
    var attrName = $(this).attr('name');
    var count = $(this).attr('count');
    $(this).attr('count', (parseInt(count)+1))
    var input = $('<input />');
    var lineBreak = $('<br/>');
    input.attr('type','text')
    input.attr('name',attrName+"["+count+"]" ) 
    $('.spouce_children').append(input);
    $('.spouce_children').append(lineBreak);
})
});

和PHP / HTML代码 - &gt;按钮一(add_child)

孩子们,请为您的自然和/或上瘾的孩子命名

<?php foreach($_SESSION['children'] as $index=>$child){ ?>
<?php echo "<input type='text' name='children[{$index}]' value='{$child}'/>";?>
<?php } ?>

<input type="button" count='<?php echo count($_SESSION['children']);?>' name="children" class="add_child" value="Add Another Child"/>

<div class="children_form">
<?php //add the inputs here?>   
</div>

和PHP / HTML代码 - &gt;按钮2(sp​​ouce_children)

<label>Spouces Children, please name all natural and addopted children</label>
<input type="text" name="spoucechild" id="spoucechild" />

<?php foreach($_SESSION['spoucechild'] as $index=>$child){ ?>
<?php echo "<input type='text' name='spoucechild[{$index}]' value='{$child}'/>";?>
<?php } ?>

<input type="button" count='<?php echo count($_SESSION['spoucechild']);?>' name="spoucechild" class="add_s_child" value="Add Another Child"/>
<div class="spouce_children">
    <?php //add the inputs here?>     
</div>

我想感谢您提供的任何帮助&lt; 3

错误发生在这里:

<?php foreach($_SESSION['spoucechild'] as $index=>$child){ ?>

1 个答案:

答案 0 :(得分:1)

@Xavier:你可以试试 -

<?php
if (isset($_SESSION['spoucechild'])) {
    foreach($_SESSION['spoucechild'] as $index=>$child){
        echo '<input type="text" name="spoucechild[' . $index . ']" value="' . $child . '" />' . "\n";
    }
}
?>