2017-10-01 5 views
0

あなたの日はどうですか? 私はそれを理解しているように見えないので、鉱山はあまり良くありません。PHPのforeach値が連想配列で置き換えられる

function check_input($input) { 
    $input = htmlspecialchars($input); 
    $input = trim($input); 
    $input = stripslashes($input); 

    return $input; 
} 

は今、私はすべての情報を取得するために$ _GETを使用します。

<body> 
<form action = "opdracht4.7.test.php" method="get"> 
    Uw naam: <input type="text" name="naam"><br> 
    Uw e-mail: <input type="text" name="email"><br> 
    <br> 
    Bevalt deze website? <input type="radio" name="keuze" value="Ja" checked> Ja 
     <input type="radio" name="keuze" value="Nee"> Nee 
     <input type="radio" name="keuze" value="Weet niet"> Weet niet <br> 
    <br> 
    Uw commentaar: <br> 
    <textarea name="commentaar"></textarea><br> 
    <br> 
    <input type="submit" name="submit" value="submit"> 
</form> 

私が機能しているいくつかの要件を持っているデータを処理するために:私はこのようになりますフォームを持っています

if(isset($_GET['submit'])) { 
    $form = array($_GET['naam'], $_GET['email'], $_GET['keuze'], $_GET['commentaar']); 

ので、すべてが正常に動作している、今私が使用します。

foreach($form as $key => $value) { 
     $value = check_input($value); 
     echo $key.' is a '.$value."<br>"; 
    } 

しかしここでそれが間違っています。 $ _GET ['x']を通るすべての値はcheck_input($ value)に置き換えなければなりません...しかし、それは動作しません。ループ内の値は変更されますが、foreachループを終了すると$値は調整されず、調整もされません。誰か助けてくれますか?

答えて

0

は、私はあなたの$form配列を探していると思うが、あなたのcheck_input機能に対してマッピングされた:$値は同様にブロックforeachループの外に定義された配列に格納されなければならない。ここ

if(isset($_GET['submit'])) { 
    $form = array($_GET['naam'], $_GET['email'], $_GET['keuze'], $_GET['commentaar']); 
    $form = array_map('check_input', $form); 
} 
0

以下

$value=array(); 
$i=0; 
foreach($form as $key => $value) { 
    $value[$i] = check_input($value); 
    echo $key.' is a '.$value[$i]."<br>"; 
$i++; 
    } 
print_r($value); 
関連する問題