0
答案的動態數量,和我通過以下到後端對我使用JQuery驗證前端處理在準備好的聲明
data: {
'field1': $("input[name='field1']:checked").val(),
'field2': $("input[name='field2']:checked").val(),
'field3': $("#field3").val(),
'field4' : $("#field4").val(),
'field5' : $("#field5").val(),
'field6' : $("#field6").val()
}
是必需的前三個字段,所以它們會一直有一個值。接下來的三個是可選的,所以他們可能沒有價值。在我的PHP文件,我做這樣的事情必填字段
if (!empty($_POST["field1"])) {
$field1 = filter_var($_POST["field1"], FILTER_SANITIZE_STRING);
array_push($inputArray, $field1);
} else{
$errors['field1'] = 'Please select field1';
}
而對於可選字段我做
if (!empty($_POST['field4'])) {
$field4 = filter_var($_POST["field4"], FILTER_SANITIZE_STRING);
array_push($inputArray, $field4);
}
到本月底,我有一個$inputArray
可能3-6之間含有傳遞給我的數據庫文件的值。在這裏,我做這樣的事情
$stmt = $dbh->prepare("INSERT INTO database_table(Field1, Field2, Field3, Field4, Field5, Field6) VALUES (?, ?, ?, ?, ?, ?)");
$stmt->bindParam(1, $this->inputArray[0]);
現在將罰款前三,但如果我再嘗試一個可選的元素,它不存在,一個錯誤就會被拋出。
什麼是處理這種情況的最好方法?在PHP文件中,我應該總是爲三個if語句(它們是可選字段)(例如,
else {
array_push($inputArray, '');
}
我知道我可能使用的幾種解決方案,只是想從別人那裏得到他們如何處理它的意見。
感謝
您可以根據您實際想要插入的數據構建預準備聲明? ^^ – Jakumi