抱歉,对于PHP来说,我有点像菜鸟但是我想知道是否有人知道如何解决这个PHP / SQL问题。
我有一个PDO语句,可以从数据库中获取所有用户。 使用数据库中的用户数组,我创建了一个foreach循环来显示表中我想用来选择特定用户的所有用户,在我选择的用户行中输入一个数字,然后单击提交和存储用户名和数字。稍后我将使用此信息填充另一个数据库。
我的问题是,我似乎无法引用用户或表格中的数字来提取我输入的用户和号码。当我尝试请求在index.php中输入的编号时,如果我为表中的最终用户输入一个数字,它将只显示一个数字。当我尝试查看FullName它永远不会工作,我得到'未定义的索引:FullName'错误。 我还指定'在表单中POST,但它似乎没有这样做。 有没有人有任何想法?
由于
// function.php
function getName($tableName, $conn)
{
try {
$result = $conn->query("SELECT * FROM $tableName");
return ( $result->rowCount() > 0)
? $result
: false;
} catch(Exception $e) {
return false;
}
}
// form.php的
<form action "index.php" method "POST" name='form1'>
<table border="1" style="width:600px">
<tr>
<th>Name</th>
<th>Number Entered</th>
<tr/>
<tr>
<?php foreach($users as $user) : ?>
<td width="30%" name="FullName">
<?php echo $user['FullName']; ?>
</td>
<td width="30%">
<input type="int" name="NumberedEntered">
</td>
</tr>
<?php endforeach; ?>
</table>
<input type="submit" value="submit"></td>
</form>
//的index.php
$users = getName('users', $conn);
if ( $_REQUEST['NumberedEntered']) {
echo $_REQUEST['NumberedEntered'];
echo $_REQUEST['FullName'];
}
答案 0 :(得分:-1)
变量FullName
不会由您的表单传输到index.php
。仅发送表单元素的值。您可以添加隐藏的表单字段,其中包含FullName
,如下所示:
<input type="hidden" name="FullName" value="<?php echo $user['FullName']">
但是你的第二个问题是,你的foreach循环将创建几个具有完全相同名称的输入字段。除了最后一个,您无法接收任何输入的号码。看看this question可能的解决方案。
更新
将每一行放在单独的表单标签中可以解决您的问题:
<?php foreach($users as $user) : ?>
<form action="index.php" method="POST">
<tr>
<td align="center" width="40%" >
<?php echo $user['FullName']; ?>
<input type="hidden" name="FullName" value="<?php echo $user['FullName']; ?>" />
</td>
<td width="30%">
<input name="NumberedEntered"/>
</td>
<td>
<input type="submit" value="submit"/>
</td>
</tr>
</form>
<?php endforeach; ?>