2017-02-14 9 views
0

У меня есть динамическая форма, которая использует переменные переменные, и она работает хорошо, но я пришел к проблеме, когда некоторые значения POST должны быть удалены после их обработки представлением формы. Из-за характера переменных переменных и программирования этой динамической формы, которая динамически создает запросы на вставку и обновление, мне нужно удалить эти значения из сообщения после того, как они были обработаны в одну переменную.Отмена некоторых значений в динамической форме

секция обработки формы частичная находится в цикле Еогеаспа и содержит:

$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; 

как ключ $ должен содержать имя поля POST, которое я пытаюсь отключить(), но они d o не отменяется. Есть идеи?

ответ

0

Как только я переписал и упростил свой первоначальный вопрос, когда это дало мне представление, которое, похоже, сделало трюк. Вместо использования unset, я использовал продолжение:

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;