2014-02-06 32 views
0

我有这样的代码。html表格中的输入类型文本名称

<form action="submit.php" method="post"> 
<table> 
<tr> 
<th> Student </th> 
<th> Subject </th> 
<th> Grade </th> 
</tr> 
$sql = mysql_query("select * from tblsubjectgrade"); 
while($row = mysql_fetch_array($sql)){ 
echo'<tr>'; 
echo '<td>'.$row['name'].'</td>'; 
echo '<td>'.$row['subject'].'</td>'; 
echo '<td><input type="text" name="grade" /></td>'; 
echo '</tr>'; 
} 
echo '<input type="submit" />'; 
</form> 

我的问题是,如果我有20个学生我会输入每个学生一年级,当我点击提交按钮都在每个学生输入的等级必须保存到数据库命名tblgrade。每个输入的名称都不相同。任何人都可以帮助我?

+1

'<输入类型=“text”name =“grade []”/>',或'' - @davey提供了正确的语法代码 – chrisboustead

+1

其实''input type =”text“name =”grade ['。$ row ['id']。']“/>',否则你不知道哪个档次属于哪个学生 – davey

+0

你可以给tblgrade吗? –

回答

1

grade应该是一个数组,在你的情况下它只是一个值。

如果你的表结构有一个ID,将其分配到的名字,像这样

while($row = mysql_fetch_array($sql)){ 
echo'<tr>'; 
echo '<td>'.$row['name'].'</td>'; 
echo '<td>'.$row['subject'].'</td>'; 
echo '<td><input type="text" name="grade['.$row['id'].']" /></td>'; 
echo '</tr>'; 
} 

然后在PHP中,你将有一个$_POST["grade"]阵列,包含所有的值,与实际表关联。

您可以通过$_POST["grade"][row_id]

0

访问这些更新/插入他们的数据库,你可以这样做:

<?php 
foreach($_POST["grade"] as $id => $grade) { 
    $query = "SELECT * FROM tblgrade WHERE id = '$id'"; 
    $result = mysql_query($query); 
    if(mysql_num_rows($result) > 0) 
    $query = "UPDATE tblgrade SET grade = '$grade' WHERE id = '$id'"; 
    else 
    $query = "INSERT INTO tblgrade SET id='$id', grade = '$grade'"; 
    mysql_query($query); 
} 
?> 

,如果你需要,如果ID不存在,你挽救他们的名字&主题也必须将这些输入字段放入。

0

事情是这样的:

$rowCount = $_POST['hiddenName']; 
for($i=1; i<=$rowCount; $i++) 
{ 
    $_POST['name_'.$i] 
} 

,或者你可以做这样的事情:

HTML标记:

<table> 
    <tr> 
    <td><input type="text" name="name[]" ></td> 
    <td><input type="text" name="subject[]" ></td> 
    <td><input type="text" name="grade[]"> </td> 
    </tr> 
</table> 

PHP标记:

<?php 
$rowCount = count($_POST['name']); 
    echo "<table>"; 
    for($i=1; $i<=$rowCount; $i++) 
    { 
    echo "<tr>"; 
    echo "<td>".$_POST['name'][$i -1]."</td>"; 
    echo "<td>".$_POST['subject'][$i -1]."</td>"; 
    echo "<td>".$_POST['grade'][$i -1]."</td>"; 
    echo "</tr>"; 
    } 
    echo "</table>"; 
?>