0

私はphpフォームに送信しているhtmlフォームを持っています。1〜20個の要素を持つことができる1つのフィールドを除いて、すべてを変数に問題なく設定できます。私が POST しようとしているものの名​​前は cred_x_name です 問題は、ユーザーが 1 つまたは 20 の要素を入れることができることです。いくつ入れられるかわかりません。count 関数を使用する必要があることはわかっていますが、わかりませんそれの使い方。これまでのところ、

$j=  count($cred_req_name);
for ($i=0; $i<$j;$j++)
{
echo "test";
}

これが正しいアプローチかどうかはわかりません。どんな助けでも大歓迎です。ありがとう、ラヴィ

4

1 に答える 1

0

あなたのリンクを見て、私は次のようなことをすると思います:

$credentials = array();

for ($i = 1; $i <= 20; $i++)
{
    if (isset($_POST['cred_'.$i.'_name']) && !empty($_POST['cred_'.$i.'_name'])
    {
        $credentials[] = array(
            'name' => $_POST['cred_'.$i.'_name'],
            'city' => $_POST['cred_'.$i.'_city'],
            //  etc
        )
    }
}

次に、ユーザーが入力したすべての資格情報の完全な配列があり、空の行は無視されます。たとえば、資格情報が 3 つしか入力されていない場合、配列$credentialsの長さは 3 要素になります。次に、この配列を使用して、データベースに資格情報を入力するなど、必要なものを処理できます。今回は、作成した配列を foreach を使用して解析します。

大文字の使用にも注意してください:'cred_'.$i.'_name'は と同じではありません'Cred_'.$i.'_name'。すべての「名前」属性を (「Cred_x_foo」ではなく) 「cred_x_foo」に変更しないと、期待どおりに動作しません。

とにかく、入力をサニタイズすることを忘れないでください。今のところそうではないようです。

それが役に立てば幸い。

于 2013-08-03T14:51:11.357 に答える