2012-09-28 53 views
1

再次编辑:新的修订版提交多一个PHP的形式提交按钮

所以我已经改正缺乏标签在我的表,我已经添加的ID在我的形式,我添加了一个隐藏字段给每个窗体。与表单ID相同的价值也如(建议)

我试图修改我原来如果isset包括表单ID的,但那是我有点来之不易。

如前所述,这里就是页面创建HTML:

 <br><table border=1><tr><th>customer</th><th>product</th><th>employee</th><th>return_date</th><th>complete</th></tr><br><tr><td>marne1</td><td>basketball</td><td>user</td><td>01-10-12</td><td>  <FORM id="1" method ="post" action ="g.php"> 
     <input type='hidden' name='x' value='1'> 
     <Input type = 'Radio' Name ='ir' value= '47'> 47  <input type="submit" name="return"/> 
     </FORM> 
     </td></tr><br><tr><td>marne1</td><td>basketball</td><td>user</td><td>01-10-12</td><td>  <FORM id="2" method ="post" action ="g.php"> 
     <input type='hidden' name='x' value='2'> 
     <Input type = 'Radio' Name ='ir' value= '48'> 48  <input type="submit" name="return"/> 
     </FORM> 
     </td></tr><br><tr><td>marne1</td><td>basketball</td><td>user</td><td>02-10-12</td><td>  <FORM id="3" method ="post" action ="g.php"> 
     <input type='hidden' name='x' value='3'> 
     <Input type = 'Radio' Name ='ir' value= '49'> 49  <input type="submit" name="return"/> 
     </FORM> 
     </td></tr><br><tr><td>marne1</td><td>basketball</td><td>user</td><td>29-09-12</td><td>  <FORM id="4" method ="post" action ="g.php"> 
     <input type='hidden' name='x' value='4'> 
     <Input type = 'Radio' Name ='ir' value= '50'> 50  <input type="submit" name="return"/> 
     </FORM> 
     </td></tr><br><tr><td>marne1</td><td>basketball</td><td>user</td><td>01-10-12</td><td>  <FORM id="5" method ="post" action ="g.php"> 
     <input type='hidden' name='x' value='5'> 
     <Input type = 'Radio' Name ='ir' value= '51'> 51  <input type="submit" name="return"/> 
     </FORM> 
     </td></tr><br><tr><td>marne1</td><td>basketball</td><td>user</td><td>01-10-12</td><td>  <FORM id="6" method ="post" action ="g.php"> 
     <input type='hidden' name='x' value='6'> 
     <Input type = 'Radio' Name ='ir' value= '52'> 52  <input type="submit" name="return"/> 
     </FORM> 
     </td></tr><br><tr><td>marne1</td><td>basketball</td><td>user</td><td>02-10-12</td><td>  <FORM id="7" method ="post" action ="g.php"> 
     <input type='hidden' name='x' value='7'> 
     <Input type = 'Radio' Name ='ir' value= '60'> 60  <input type="submit" name="return"/> 
     </FORM> 
     </td></tr><br><tr><td>marne1</td><td>basketball</td><td>user</td><td>02-10-12</td><td>  <FORM id="8" method ="post" action ="g.php"> 
     <input type='hidden' name='x' value='8'> 
     <Input type = 'Radio' Name ='ir' value= '61'> 61  <input type="submit" name="return"/> 
     </FORM> 
     </td></tr><br></table> 

    <fieldset> 
<legend>???</legend> 
<form action="z.php" method="post"> 
Customer Name: <input type="text" name="ir" /> <br><br> 
<input type="submit" name="return"/> 
</form> 

这是创建这个HTML(我porly试图形式ID测试)PHP页面:

<?php 
$db_host = "localhost"; 
$db_username = "root"; 
$db_pass = "usbw"; 
$db_name = "test"; 
mysql_connect("$db_host","$db_username","$db_pass") or die ("could not connect to mysql"); 
mysql_select_db("$db_name") or die ("no database"); 
$result = mysql_query("SELECT * FROM rental WHERE customer = '$_POST[customer]' AND complete = '0' ") or die (mysql_error()); 
?> 

    <?php 
    echo '<br>'; 
    echo '<table border=1>'; 
    echo '<tr><th>customer</th><th>product</th><th>employee</th><th>return_date</th><th>complete</th></tr>'; 
    echo "<br>"; 
    $x=1; 
    while($row=mysql_fetch_array($result)) 
    { 
     echo '<tr>'; 
     echo '<td>'; 
     echo $row ['customer']; 
     echo '</td><td>' ; 
     echo $row ['product']; 
     echo '</td><td>'; 
     echo $row ['employee']; 
     echo '</td><td>'; 
     echo $row ['return_date']; 
     echo '</td><td>'; 
     $cur_return = $row ['rental_id']; 
     ?> 
     <FORM id="<?php echo $x; ?>" method ="post" action ="g.php"> 
     <input type='hidden' name='x' value='<?php echo $x; ?>'> 
     <Input type = 'Radio' Name ='ir' value= '<?php echo $cur_return ?>'> <?php echo $cur_return ?> 
     <input type="submit" name="return"/> 
     </FORM> 
     <?php 
    echo '</td></tr>'; 
    echo '<br>'; 
    $x++; 
    } 
    echo '</table>'; 
    ?> 

    <fieldset> 
<legend>???</legend> 
<form action="z.php" method="post"> 
Customer Name: <input type="text" name="ir" /> <br><br> 
<input type="submit" name="return"/> 
</form> 

    <?php 
    if (isset($_POST['return'])) 
    { 
    if ($_POST['x']==1) 
     { 
     mysql_query("UPDATE rental SET complete = '1' WHERE rental_id = '$_POST[ir]'") or die (mysql_error()); 
     } 
    } 
    ?> 

我真的很感谢你们所提供的所有帮助,并且对于我所得到的这个排序的时间表示歉意:)

Rich

+4

你似乎没有问一个问题。 – andrewsi

+0

是你的作业吗? ;-) –

+0

对不起,我的问题是,它不工作......这是更多的声明,所以我想知道为什么它不工作:) – user1707055

回答

2

等待等待。你在这里有多行数据,你想提交一个特定的数据行,但它们都以相同的形式?我有点困惑。它看起来像你真正在寻找的是为每行生成一个不同的表单元素。但是你不能有多个提交按钮提交同一表单的不同部分,这不是表单的工作方式。提交按钮将提交属于表单的所有数据。

在这种情况下,只需将开始窗体标记移动到while循环内部的开始处,然后将提交按钮和闭合窗体标记移动到while循环的底部。它将生成每个表单并仍然保持表格的结构。但是你不能有一种形式只提交其本身的某些部分,这违背了基本的HTML原则。

我想强烈建议在每个表格上打一个ID,以备将来参考和更新之用。

祝你好运。

+0

我已经修改了我的原代码与您的建议,但还没有仍然有问题 – user1707055

+1

是的,没有你告诉我们更多关于它究竟应该做什么以及它现在做什么做这将是我们很难帮助你进一步。该表单看起来应该正确提交。我建议只发布HTML源代码,以便我们可以看到并确保其正确生成(您如何处理数据是PHP,但听起来您在创建HTML代码本身时遇到问题)。我们可以告诉你它应该是什么样子,如果你仍然无法获得它,那么我们可以谈论PHP部分。 – dudewad

+0

另外,当发布代码(尤其是生成HTML的PHP​​)时 - 更清理它,以便我们可以更轻松地阅读它。很难看到发生了什么。我再修改一次,它看起来像你的开始表行(tr标签)为每行不存在 - 你有一个开放tr标记之前的while循环,这可能有助于弄乱你的格式(如果这是一个问题)。你还没有留下这些表格! – dudewad

1

你可以用javascript做到这一点,但不能用php。但它没有理由过于复杂。制作不同的表格并将其分配给不同的ID。你可以使用相同的method =“post”和相同的action =“g.php”。要在g.php不同,只是把这个在每个窗体:

<input type='hidden' name='x' value='1'> 

然后

<input type='hidden' name='x' value='2'> 

然后,它是一个简单的,如果$ _ POST [ 'X'] == 1

而且,确保你保护g.php,这对于处理表单的文件来说是一个非常不安全的名字。

+0

感谢您抽出宝贵时间回复Jeff,但我认为我的知识有限使我很难理解您的解决方案如何帮助我(加上我几乎没有Javascript) – user1707055

+0

您需要使用正常值。在while循环之前放置$ x = 0。然后在$ x ++循环的底部; 然后你用$ x的值做隐藏的输入。 。 回声,当然都是。与表单ID相同。

+0

然后,您只需扩展if($ _ POST ['return'])语句以包含隐藏值来区分表单。 –