我有一个表格,有人可以添加多个电话号码和扩展名,我试图将它们保存在数据库中,每当我保存数据时,它都会在两个字段中显示“Array”一词。
到目前为止,这是我的代码:
if (!empty($_POST['Phone']) && isset($_POST['Extension'])) {
foreach ($_POST['Phone'] as $key => $value) {
foreach ($_POST['Extension'] as $key => $value2) {
$para = array("UserID" => \PDO::PARAM_INT, "Phone" => \PDO::PARAM_STR, "Extension" => \PDO::PARAM_STR);
$val = array($_SESSION['UserID'], $_POST['Phone'], $_POST['Extension']);
$r = DB::Call("[spPhoneInsert]", $para, $val);
}
}
if (count($r) > 0 && $r[0]['Result'] == 'Ok') {
header("location:home.php?added_phone=1");
} else {
header("location:home.php?error_phone=1");
}
exit;
}
答案 0 :(得分:1)
每当您发布包含多个相同名称元素的表单时,如
<input type="text" name="phone[]">
<input type="text" name="phone[]">
数据作为数组发布到操作页面。 您必须遍历此数组以将其保存在数据库
中你可以像这样循环并创建你想要的任何格式 以下代码将保存您的号码和扩展名逗号分隔
foreach ($_POST['phone'] as $number){
$allNumbers .= $number.',';
}
foreach ($_POST['extension'] as $ext){
$allExt .= $ext.',';
}
$para = array("UserID" => \PDO::PARAM_INT, "Phone" => \PDO::PARAM_STR, "Extension" => \PDO::PARAM_STR);
$val = array($_SESSION['UserID'], trim($allNumbers,','), trim($allExt,','));
$r = DB::Call("[spPhoneInsert]", $para, $val);