1

これは、入力テキスト フィールドを動的に追加/削除するために使用するスクリプトです。この入力フィールドに対して個別のブロックを複数作成できるように、コンテナ プロパティを使用しています。

$(function(){
    $('.container > a').click(function(e){
        e.preventDefault();
        var $this= $(this),
            prnt = $this.parent(),
            i = prnt.find('input').length;
        if($this.hasClass('add')){
            $('<div><input type="text" class="field" name="dynamic[]" value="' + i + '" /></div>').hide().fadeIn('slow').appendTo($('.inputs',prnt));
        }else if($this.hasClass('remove') && i > 1){
            prnt.find('input.field:last').remove();
        }else if($this.hasClass('reset') && i > 1){
            prnt.find('input.field:gt(0)').remove();
        }
    });
})

これは、入力フィールドを作成するために使用している html コードです。

<div class="container">
<a href="#" class="add">Add</a> | <a href="#" class="remove">Remove</a> | <a href="#" class="reset">reset</a>
    <div class="inputs">
        <input type="text" name="dynamic1" class="field"/>
    </div>
</div>

入力フィールドからすべてのフィールドを出力するには、PHP コードが必要です。3 つの入力フィールドを追加する場合、PHP コードでそれらの入力フィールドすべてを次々に出力する必要があります。

foreach コードを使用してみました:

<?php
foreach($_POST['dynamic[]'] as $value) {
echo "$value <br />"; // change this to what you want to do with the data
}
?>

しかし、2 行目 (foreach 行) でエラーが発生し続けます。

どうすればいいですか?助けてください!

4

2 に答える 2

2

あなたは変わるべきです

foreach($_POST['dynamic[]'] as $value) {

foreach($_POST['dynamic'] as $value) {

それは、このようなHTMLがある場合です

<input type="text" name="dynamic[]" class="field"/>
<input type="text" name="dynamic[]" class="field"/>

しかし、現在の HTML では、配列<input type="text" name="dynamic1" class="field"/>ではないことがわかります。$_POST['dynamic']このようにエコーする必要があります。

echo $_POST['dynamic1'] ;
于 2012-09-27T07:03:09.157 に答える
1

$_POST['dynamic[]'試す代わりに$_POST['dynamic']

<?php
foreach($_POST['dynamic'] as $value) {
echo "$value <br />"; // change this to what you want to do with the data
}
?>
于 2012-09-27T07:03:37.793 に答える