我正在爲非政府組織(志願者工作)製作表格,以便他們可以讓他們的成員訂購一些植物和其他東西。顯然這涉及到輸入一些個人數據。我試圖做的是收到表單中的數據以遍歷$_POST
數組,並將所有個人數據分配給一個名爲$klantinfo
(clientinfo)的關聯數組。我第一次嘗試(只有其他部分很重要):我嘗試在關聯數組中輸入值,但它不起作用
foreach ($_POST as $key => $value){
if (is_numeric($key) && is_numeric($value) && $value != 0){
$aantalItems++;
$items[$key] = $value;
} else if(!is_numeric($key)){
$klantinfo[$key] = $value;
}
工作正常。所以我試圖添加一些檢查什麼是輸入(已經做了客戶端驗證),並認爲我會開始簡單。所以我做了這樣的開關:
switch($key){
case 'lidnr': lidnr($value); break;
case 'voornaam': voornaam($value); break;
case 'naam': naam($value); break;
case 'straat': straat($value); break;
case 'gemeente': gemeente($value); break;
case 'tel': tel($value); break;
case 'email': email($value); break;
case 'reedslid': lid($value); break;
case 'afhaalpunt': afhaalpunt($value); break;
default: break;
}
一個簡單的功能我呼籲那些之一的例子:
function lidnr($nr){
if(mb_strlen($nr) == 6){
$klantinfo['lidnr'] = (int) $nr;
echo $nr;
}
}
,由於某種原因不工作,雖然它是超越我爲什麼。本來我只是宣佈變量$klantinfo
在我的腳本頂部,如$klantinfo;
。我估計它可能與我的聲明有關,所以我嘗試這樣:$klantinfo = array('lidnr' => 0, 'voornaam' => "", 'naam' => "", 'straat' => "", 'gemeente' => "", 'tel' => "", 'email' => "", 'reedslid' => 0, 'afhaalpunt' => "");
,也不起作用。即使更加狡猾:如果我回到我的初始代碼中使用該變量聲明並僅使用$klantinfo[$key] = $value
,那麼數組$ klantinfo中未由客戶端填寫的所有項都消失了。即使我初始化那些默認值。
我在這裏錯過了什麼嗎?我搜索並閱讀了幾個主題。在php中爲關聯數組賦值應該是$array['key'] = 'desired_value'
。那爲什麼它不工作?我應該注意順便說一句,你在我所調用的示例函數中看到的回顯確實有效。
「不起作用」?它有什麼作用?什麼?空陣列? PHP錯誤?需要關於你的代碼和問題的更多信息(而不是項目背景細節;)) – James
如果我嘗試print_r $ klantinfo使用最初的「簡單」技術,那麼我有一個很好的列表像這樣:Array([lidnr] => 654456 [voornaam] => Koen [naam] => Cornelis [straat] => Teirlinckstraat 50 [tel] => 0493635780 [mail] => [email protected]) 如果我嘗試用新技術,全部,只是空白。 –
你確定這個條件得到滿足嗎? 'if(mb_strlen($ nr)== 6)',如何添加一個'else'語句來調試? –