2017-02-14 71 views
0

我有一個使用變量變量的動態表單,它運行良好,但我遇到了一些POST值必須在表單提交處理後才能刪除的問題。由於變量變量的性質以及動態構建動態插入和更新查詢的動態窗體編程,我需要在將這些值處理爲單個變量後從帖子中刪除這些值。取消設置動態表單中的某些值

局部形式處理部是在foreach循環並且包含:

$Fields = array(); 
$Values = array(); 
foreach ($_POST as $key=>$value) : 
    if (Contains("month", $key)) unset($_POST); 
    if (Contains("day", $key)) unset($_POST); 
    if (Contains("year", $key)) unset($_POST); 
    if (Contains("hour", $key)) unset($_POST); 
    if (Contains("minute", $key)) unset($_POST); 
    if (Contains("second", $key)) unset($_POST); 
$Fields[] = "`$key`"; 
$Values[] = isNull($value, $DBName); 
endforeach; 

$sqlInsert = "INSERT INTO $TableName (".implode(",",$Fields).") 
        VALUES (".implode(",",$Values).")"; 

的包含()函數具有:

function Contains($searchWord, $fromString) { 
    if (is_array($fromString)) : 
     reset($fromString); 
     $key = key($fromString); 
     return strpos($key, $searchWord) !== FALSE; 
    else: 
     return strpos($fromString, $searchWord) !== FALSE; 
    endif; 
} 

我嘗試所有我能想到包括:

foreach ($_POST as $key=>$value) : 
    if (Contains("month", $key)) unset($_POST[$key]); 
    if (Contains("day", $key)) unset($_POST[$key]); 
    if (Contains("year", $key)) unset($_POST[$key]); 
    if (Contains("hour", $key)) unset($_POST[$key]); 
    if (Contains("minute", $key)) unset($_POST[$key]); 
    if (Contains("second", $key)) unset($_POST[$key]); 
endforeach; 

由於$ key應該包含我試圖解除設置的POST字段的名稱(),但是它們是d o沒有解除。有任何想法嗎?

回答

0

當我這樣做的時候,我剛剛重寫並簡化了我的原始問題,給了我一個似乎已經完成的技巧。我沒有使用未設置,而是繼續使用:

if (Contains("month", $key)) continue; 
if (Contains("day", $key)) continue; 
if (Contains("year", $key)) continue; 
if (Contains("hour", $key)) continue; 
if (Contains("minute", $key)) continue; 
if (Contains("second", $key)) continue; 
相關問題