2017-01-12 2 views
0

ラジオボックスの選択で入力が "すべて"でない場合、私は私のvariabeleの設定を解除しようとしています。もしif statemtentが動作し、その仕事は完璧ですが、elseは動作しません。何か案は?php var when statement = "all"

$profile = $_POST["profile"]; 

if ($profile != 'all') { 
    $conditions["profile"] = $profile; 
} else { 
    unset($conditions["profile"]); 
} 
+2

次のいずれか:

$profile = isset($_POST["profile"]) ? $_POST["profile"] : 'all'; 

か、他のブロック内でこのような何かを試してみてください。私たちと共有したいエラーメッセージがありますか? – RiggsFolly

+0

'$ conditions [" profile "]'は実際にはそれを設定しようとする前に存在します – RiggsFolly

+0

'unset($ profile)'おそらく? 'unset($ _ POST [" profile "])'? @RiggsFollyが言ったように。それを設定解除する前に存在することを確認してください。 'unset(whatever_exists) '。 –

答えて

0

$ _POST変数が設定されていない可能性があります。あなたはそれが動作しません知っていますどのように

} else { 

    if(isset($conditions["profile"])) unset($conditions["profile"]); 
} 
+0

動作しません、私はそれが設定されていることを確信しています。最初はすべての結果を表示するよりも、自分のフォームですべてを取得するからです。私は検索APIを使用するフォームに変更があります。したがって、最初に「すべて」がチェックされます。 getAllはすべての結果を返します。次に、「すべて」を「茶色の髪」に変更すると(たとえば)。それはうまく動作し、それはプロファイル '茶色の髪'に一致するすべてのプロファイルを提供します。しかし、「すべて」をもう一度チェックしたいときは、「茶色の髪」がチェックされているかのように結果が表示されます。そして、それは私が –

+0

を持っている問題ですので、フォームの再提出イベントで$ _POST ["profile"]値を上書きすることに問題があるようです。コードを見ることなく暗闇の中で撮影していますが、再送信後にPOST変数に古い値が残っている理由を確認するためにデバッグを試しましたか?もっとコードを投稿できますか? – Milan