2011-10-20 74 views
0

我有一个html表单,其中有一个选择列表框,您可以从中选择任何一个值。考虑表单方法是post方法。表单的html代码如下。如何从PHP中的选择值中获取选定的值?

<form id="form1" name="form1" method="post" action="particular_order.php?OrderId=<?php echo $Order_no; ?>" > 
<?php 
    //$Order_no=$_GET['OrderId']; 
    $result = mysql_query("select Menu_Item_Name, Menu_Item_id, Menu_Item_quantity,Menu_Item_Price,PreparationStatus from order_details where order_id='$Order_no' && status!='C' "); 
    $rows_count = mysql_num_rows($result); 

    $i=0; 
    $ItemName=""; 
    while($row=mysql_fetch_array($result)) 
    { 
     if($i==0) 
     { 
      echo "<table id='table1' style='WIDTH: 400px;' border='3' cellSpacing=0 cellPadding=3 width=693 align=center> 
       <tbody>"; 
      echo "<tr><td><font color='#0000e' size='2'><strong>Item Name</strong></font></td> 
       <td><font color='#0000e' size='2'><strong>Item Id</strong></font></td> 
       <td><font color='#0000e' size=2><strong>Quantity</strong></font></td> 
       <td><font color='#0000e' size=2><strong>Price</strong></font></td> 
       <td><font color='#0000e' size=2><strong>Status</strong></font></td></tr>"; 
     } 
     if($row['PreparationStatus']=='NEW') 
      $ps='READY'; 
     else 
      $ps='NEW'; 
     $ItemId=$row['Menu_Item_id']; 
     echo $ItemName; 
     echo"<tr> 
      <td><font color='#0000e' size='2'>".$row['Menu_Item_Name']."</font></td> 
      <td><font color='#0000e' size='2'>".$row['Menu_Item_id']."</font></td> 
      <td><font color='#0000e' size='2'>".$row['Menu_Item_quantity']."</font></td> 
      <td><font color='#0000e' size='2'>".$row['Menu_Item_Price']."</font></td> 
      <td><SELECT NAME='Select2[]' id='PrepStatus' onChange=updatePrepStatus('$Order_no','$ItemId','$ps')><OPTION VALUE='NEW'><font color='#0000e' size='2'>".$row['PreparationStatus']." 
       </OPTION><OPTION VALUE='READY'><font color='#0000e' size='2'>$ps</OPTION></SELECT>&nbsp;</font></td></tr>"; 
     $i++; 
    } 

    if($i==0) 
    { 
     echo "<p align='center'>NO RECORDS<strong><font color='white' size='3'>"; 
    } 
    else 
    { 
     echo "</tbody></table></p> 
      <input value='Submit' type='submit' name='submit'>"; 
    } 
?> 
</form> 

我想在选择列表框中显示选定的值在同一个php页面上。 但是选定的值没有正确访问。

<?php 
    $arr=$_POST['Select2']; 
     for($i=0;$i<sizeof($arr);$i++) 
     echo $arr[$i]; 
?> 
+2

你能后的输出? – Griffin

+2

为什么只在你的HTML中只有一个名称时将你的选择命名为数组? 'sizeof($ arr)'总是会变成'1'。 – Mike

+2

你期望得到什么,你究竟得到了什么?另外,你的HTML使用一些过时的标签和属性,你应该看看像''元素去除的东西,使用'',而不是''​​在适当情况下,使用''

'元素,并使用CSS来代替。 – megaflop

回答

0

我想你的代码,我观察和必须假设选择的值传递/由形式和浏览器/客户端正确发布。

仅选择的选择的值将被张贴。

我注意到,您将标签留给第一个选项作为空白,但将这些相同的选项分配为“NEW”的值,然后您将标签为“READY”的选项标记为“NEW” ......是有意的吗?我会认为你的意思是用NEW和READY标记NEW以空白?

+0

谢谢各位!我把它固定像这样...​​  “; – user884126

+0

其实我保持选项值作为固定的(NEW和READY)。 ..但它需要根据数据库值更改选项...当使用选择框更改选项框并且完成时...然后那些不适用于PHP中的o/p。 – user884126

0

我认为你应该实际上检查你的代码,因为它包含很多错误,并且可能会导致更多的错误。假设代码是正确的渲染,我有几点建议:

  • 如果选择是不会允许选择多个选项,你应该命名只是“选择二”,所以你必须选择的值在$ POST ['Select2']中。如果你想允许多选项选择,你应该添加multiple =“multiple”属性到你的选择。
  • 如果检查代码选择栏它仍然无法正常工作后,你应该调试脚本,或者尝试,如果不能调试转储$ _POST变量,以检查是否“选择二”是在$ _ POST。

无论如何,我会建议您查看您的代码并使用某种模板来呈现HTML。