2015-02-08 121 views
0

GOAL使用切換case語句:迴音映射sw​​itch語句的情況下/匹配「postType」

問題:無論我怎麼努力,在$ _ POST數據似乎消失,因此switch語句默認情況下會被觸發,並且表單會再次顯示,而不是我希望基於$ filter變量中包含的postType顯示的預期/期望的echo語句。我在PHP 5.4工作

甲的var_dump返回: 陣列(2){[ 「postType」] => NULL [ 「爲myContent」] =>串(4) 「的DSF」}

相信我的表單和switch語句的語法/格式都正確。我的問題,我想是在某處的數據是如何或通過filter_input_array沒有被傳遞到開關(INPUT_POST,[...])

愚見代碼存根:

//test data 
//$_POST = [ 'postType' => 'myPlayby', 'myContent' => 'Anna King', ]; 


//build the array of data created by from for switch checks 
$filter = filter_input_array(INPUT_POST, [ 'postType' => [], 'myContent' => [], ]); 


var_dump($filter); 
echo "<br /><br />"; 


//$search = false; 
switch ($filter['postType']) 
{ 
case 'myChar': 
    echo "Character Check: " . $filter['myCharacter']; 
    $search = $filter['myCharacter']; 
    break; 

//test data ought to trigger myPlayby case showing 'Playby check: Anna King' here... frack 
case 'myPlayby': 
    echo "Playbe Check: " . $filter['myPlayby']; 
    $search = $filter['myPlayby']; 
    break; 
case 'myFoobar': 
    echo "Foo Check: " . $filter['myFooBar']; 
    $search = $filter['myFooBar']; 
    break; 
default: 
    echo '<form type="submit" method="post" action="' . THIS_PAGE . '"; > 
     <select name="postTypes"> 
     <option default disable>-------------</option> 
     <option value="myChar">Character</option> 
     <option value="myPlayby">Playby</option> 
     <option value="myFooBar">Foo</option> 
     </select> 
     <input type="text" value="" name="myContent"/> 
     <input type="submit" name="submit" value="Submit"> 
     </form>' ; 
    break; 
} 

這是我第一次使用filter_input_array處理$ _POST數據,經過一天的試用,錯誤,研究和努力,其中包括看Lynda.com,搜索Google和閱讀我在StackOverflow上找到的相關帖子,php.net等,我迷失了方向。

回答

0

我找到了答案,我正確的問題是如何設置filter_input_array。

通過重構像這樣的代碼:

$filter = filter_input_array(INPUT_POST, [ 
    'postType' => [ 'filter' => FILTER_SANITIZE_STRING ], 
    'contents' => [ 'filter' => FILTER_SANITIZE_STRING ], 
]); 

$search = false; //in the switch, false is reassigned value of the sanitized string and all is happiness