从数组中选择一个选择,并将数值传递到另一个页面

时间:2015-08-08 21:29:55

标签: php mysql

我是PHP的新手,所以我在完成这项任务时遇到了麻烦:

简而言之,我想运行一个查询并将结果返回到数组中,然后允许用户从数组中选择一个选项,并将数值传递给另一个要使用的php页面在其他计算中。

到目前为止,这是我的基本代码:

<?php
 include 'mysql_connect.php';
      $Choices = mysqli_query ($server_connect, "SELECT * FROM Database 
WHERE FLOOR (Item_number) = '$StockCategory' AND name='$name'") 
or die(mysqli_error ($server_connect));?>

            <table cellspacing="1" cellpadding="2" width="20%" border="1">
            <?php while ($selectionlist = mysqli_fetch_array($Choices)){
$orderchoicenumber++; 
$selectnumber = $matchups['Item_number']; ?>
<tr>
<td> <?php echo $selectionlist['size']; ?> </td>
<td>   <?php echo $selectionlist['color'];?> </td>
<td>   <?php echo $selectnumber;?></td>
<td>   <?php echo $orderchoicenumber;?>
                <?php }?>
</td></tr>

   Enter your selection: 

<form name ="selectionprocess" action="precheckout.php" method="POST">
<input type="text" maxlength="2" name="enterselection" >
<input type="hidden" name="selectnumber" value="<?php echo $selectnumber;?>">
</form>

<input type="submit" name="formSubmit" value="Submit" >

这是目的地页面上的代码[precheckout.php]:

<?php
 $name = isset($_POST["name"]) ? $_POST["name"] : $_SESSION['name'];
    $mode = $_POST["select"];
       $SelectNumber = $_POST["selectnumber"]; 

       $Item_number = $SelectNumber;
?>
<p>Hello <?php echo $name; ?>!</p> <br>
OK, the item number of what you want is--- <?php echo $Item_number;?> 

当然,这意味着myfetcharray的结果数量会有所不同。

第一个方面效果很好。在这个例子中,这是我收到的输出(以表格形式):

输入您的选择:_____

4x6 navy 90515.01 1

4x8 mauve 90515.07 2

6x8 auburn 90515.03 3

2x4 black 90515.02 4

5x7 aqua 90515.08 5

选择号位于最右侧列。 (十进制数是我的SQL数据库中的标识项目编号。我不希望在最终程序中显示此编号,即使我想我可以让用户输入该编号而不是选择编号以便继续,这不是一个非常用户友好的方法。)

当我尝试输入选择号码(在本例中为1-5)时出现问题。程序成功地将一个数值传递给预检页面[value="<?php echo $selectnumber;?>">],但它总是由myfetcharray(即最低行)吐出的最终值。在这个例子中,输出在下一页将是:

你好,约翰!

好的,让我们看看你是怎么做的,因为这个项目编号是--- 90515.08

...无论选择哪个比赛号码。

理想情况下,我想要一种更加用户友好的方式来选择行,而不是输入选择号。我尝试过单选按钮方法,但我能做的最好的事情就是成功地将“on”的值传递给下一页而不是数值。我愿意使用其他语言,但我不知道他们是否会使用PHP(即Javascript)。

对此的任何想法将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

首先:更加用户友好的方法可以是下拉菜单:试试这个:

<select>
<?php while ($selectionlist = mysqli_fetch_array($Choices)){
$orderchoicenumber++; 
$selectnumber = $matchups['Item_number']; ?>
<option value="<?php echo $selectnumber; ?>"> 
<?php echo $selectionlist['size'] . " " . $selectionlist['color'] . " " . $selectionlist['color'] . " " . $selectnumber . " " . $orderchoicenumber; ?>
</option>
<?php }?>
</select>

当页面加载时,所有PHP代码都在服务器上执行,并且与页面的任何用户交互都是客户端&#39; (在用户的机器上)所以你是对的:它需要另一种语言来更新你的选择号码隐藏输入。 jQuery(一个javascript库)是你最好的选择。

您的页面上必须已有一些javascript才能将表单发布到precheckout.php - 您可以将其添加到您的问题中,然后我就能指导您需要更改的位吗?