这是我第一次尝试创建一个数组,但它并不是那么顺利。
当按下输入字段下方的提交按钮时,我的代码会扫描表单中的每个$_POST
。我想要它只是获取“填充”input
的内容。好吧生活充满了失望,所以我试图删除所有空数组元素。但不是这样做,而是回应“数组”这个词。
自从我的C#天以来,我一直都很擅长阵列,而且我从来不知道为什么,因为它们总是看起来如此简单。如果有人能告诉我我做错了什么,我会很感激。
高于<html>
<?php
//This is what I've tried before
//$klant = array();
foreach($_POST as $k => $v) {
if (substr($k,0,10) == 'newRecord') {
$id = substr($k,10);
$klant[] = $v;
$klant = array_filter($klant);
echo $klant;
}
}
?>
标记
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table>
<?php
$query = ("select * from table1");
$result = mysqli_query($con, $query) or die (mysqli_error());
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
$id = $row['rowid'];
?>
<tr><!--There are multiple rows, that's why I'm using foreach($_POST as $k => $v)-->
<td>
<input class="newRecord<?php echo $id; ?>" type="text" name="newRecord<?php echo $id; ?>" />
<a href="?record=<?php echo $id; ?>">
<button class="saveRecord<?php echo $id; ?>" name="saveRecord<?php echo $id; ?>">Save</button>
</a>
</td>
</tr>
<?php } ?>
</table>
</form>
答案 0 :(得分:3)
echo
数组不能使用print_r
或var_dump
对于漂亮的打印阵列试试这个
echo "<pre>";
print_r($your_array);
echo "</pre>";
答案 1 :(得分:0)
改变这个:
echo $klant;
对此:
print_r($klant);
或者这个:
var_dump($klant);
echo
仅用于字符串,print_r
和var_dump
将回显任何内容(字符串,数组,对象等)。
编辑OP编辑:
这将删除数组中任何空的内容:
foreach ($klant as $key => $value)
if (empty($value))
unset($klant[$key]);
print_r($klant);
答案 2 :(得分:0)
试试这个
foreach($_POST as $k => $v) {
if (substr($k,0,10) == 'newRecord') {
$id = substr($k,10);
$klant[] = $v;
}
}
var_dump($klant);
答案 3 :(得分:0)
我相信这就是你想要的!
<?php
$klant = array();
foreach($_POST as $k => $v) {
if (substr($k,0,10) == 'newRecord' && trim($v)) {
$id = substr($k,10);
$klant[$id] = $v;
}
}
echo "<pre>";var_dump($klant);echo "</pre>";
?>
但我并不确信我清楚地理解这个问题。你能澄清一点吗(如果这不是你想要的那样)?