我是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(即最低行)吐出的最终值。在这个例子中,输出在下一页将是:
...无论选择哪个比赛号码。
理想情况下,我想要一种更加用户友好的方式来选择行,而不是输入选择号。我尝试过单选按钮方法,但我能做的最好的事情就是成功地将“on”的值传递给下一页而不是数值。我愿意使用其他语言,但我不知道他们是否会使用PHP(即Javascript)。
对此的任何想法将不胜感激。谢谢!
答案 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 - 您可以将其添加到您的问题中,然后我就能指导您需要更改的位吗?