PHP中的HTML-插入所有值表单,而部分表单按循环显示
我有一个表单,看起来像:PHP中的HTML-插入所有值表单,而部分表单按循环显示,php,html,forms,Php,Html,Forms,我有一个表单,看起来像: |-----------------------| |Text | |(dropdown) | ------------------------| |label (value = 1) | //get this by loop using while |input | //get this by loop using while |------------------
|-----------------------|
|Text |
|(dropdown) |
------------------------|
|label (value = 1) | //get this by loop using while
|input | //get this by loop using while
|-----------------------|
|label (value = 2) | //get this by loop using while
|input | //get this by loop using while
|-----------------------|
|label (value = ...) | //get this by loop using while
|input | //get this by loop using while
|-----------------------|
|submit |
我不知道为什么我的表单只插入最后一个值
示例
print\r($\u POST)点击提交按钮时代码>输出是数组([ia]=>1[ik]=>2[nn]=>79)
我想去
Array ( [ia] => 1 [ik] => 1 [nn] => 80 )
Array ( [ia] => 1 [ik] => 2 [nn] => 79 )
这是我关于使用while
显示另一个表单的代码:
if($_POST){
include_once 'includes/rangking.inc.php';
$eks = new rangking($db);
$eks->ia = $_POST['ia'];
$eks->ik = $_POST['ik'];
$eks->nn = $_POST['nn'];
if($eks->insert()){
?>
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
<strong>Berhasil Tambah Data!</strong> Tambah lagi atau <a href="rangking.php">lihat semua data</a>.
</div>
<?php
}
else{
?>
<div class="alert alert-danger alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
<strong>Gagal Tambah Data!</strong> Terjadi kesalahan, coba lagi.
</div>
<?php
}
}
?>
<form method="post">
<div class="form-group">
<label for="ia">Alternatif</label>
<select class="form-control" id="ia" name="ia">
<?php
$stmt3 = $pgn1->readAll();
while ($row3 = $stmt3->fetch(PDO::FETCH_ASSOC)){
extract($row3);
echo "<option value='{$id_alternatif}'>{$nama_alternatif}</option>";
}
?>
</select>
</div>
<div class="form-group">
<?php
$no=1;
$stmt2 = $pgn2->readAll();
while ($row2 = $stmt2->fetch(PDO::FETCH_ASSOC)){
extract($row2);
?>
<label for="ik"><?php echo $nama_kriteria; ?></label>
<input type="hidden" name="ik" id="ik" value=<?php echo $id_kriteria ?>>
<input type="text" class="form-control" id="nn" name="nn">
<?php
}
?>
</div>
<button type="submit" class="btn btn-primary">Simpan</button>
<button type="button" onclick="location.href='rangking.php'" class="btn btn-success">Kembali</button>
</form>
您有多个同名元素,如果发布该表单,它将只发送最后一个元素的值
您应该更改以下两行:
<input type="hidden" name="ik" id="ik" value=<?php echo $id_kriteria ?>>
<input type="text" class="form-control" id="nn" name="nn">
>
这样,它将作为一个数组传递,该数组应包含每个输入。您可以查看更多信息。这段代码帮助我了解我想要的数组,但是为什么显示数组到字符串转换的错误
,我应该编辑rangking.inc.php
代码吗?您尝试使用实际数组而不是数组中的值。您正在尝试将实际数组插入数据库。您必须循环insert函数(内部或外部),并同时传递数组的一行。您可以查看更多信息。感谢您的建议,现在是使用阵列“战斗”的时候了,
<input type="hidden" name="ik" id="ik" value=<?php echo $id_kriteria ?>>
<input type="text" class="form-control" id="nn" name="nn">
<input type="hidden" name="ik[]" id="ik" value=<?php echo $id_kriteria ?>>
<input type="text" class="form-control" id="nn" name="nn[]">