我需要通過表單更新表行。有時會有單行但有時會有多行,因此我需要表單來發布可以輕松回圈并在(Wordpress)資料庫中更新的多維陣列。
我認為以下是您的操作方式,但 $_POST 陣列不正確。我需要改變什么?
//function to disaply form fields for each row
public function make_form($results) {
$html_fields = '';
$count = 1;
foreach($results as $result) {
if($count != 1){
$html_fields .= '<h4>Row: ' . $count . '</h4>';
}
foreach($result as $field_name => $field_value) {
if ($field_name !='ID'){
$html_fields .= '<p><label for="' . $field_name . '">' . $field_name . '</label><br />';
$html_fields .= '<input type="text" value="' . $field_value .'" id="' . $field_name . '" name="' . $field_name . '[' . $result->ID . ']"></p>';
}
}
$count ;
}
return $html_fields;
}
//function to update database with form data
public function update_row() {
global $wpdb;
$wpdb->show_errors = true;
$table_name = $wpdb->prefix . 'mytable';
echo '<pre>';
print_r($_POST);
foreach($_POST as $id => $values){
$results = $wpdb->update($table_name, $values, array( 'ID' => $id ));
}
}
陣列列印如下:
Array (
[REF] => Array
(
[648] => D10902B-SE
)
[QC] => Array
(
[648] => 1
)
[QCT] => Array
(
[648] => EA
)
[update] => Update )
當我需要更多類似的東西時:
Array
(
[648] => Array
(
[REF] => D10902B-SE
[QC] => 1
[QCT] => EA
)
[555] => Array
(
[REF] => TESTREF
[QC] => 2
[QCT] => EAFFFFF
)
)
我希望這是有道理的...
uj5u.com熱心網友回復:
您可以更改評論中提到的輸入名稱的順序
$html_fields .= '<input type="text" value="' . $field_value .'" id="' . $field_name . '" name="' . $result->ID . '[' . $field_name . ']"></p>';
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/425118.html
上一篇:合并陣列索引的鍵和值
下一篇:無法覆寫javascript陣列
