我试图创建一个简单的网上商店,我在每行列出一些项目(订购),有一个表单字段,用于告知客户需要多少商品。然后她提交一个按钮,动作是另一个页面,其中项目将被添加到MYSQL表中以便稍后处理。我想当用户点击提交时,有一个隐藏字段发送itemid。
我需要找到一种方法将itemid与我一起制作到另一边,但我不能使该行的变量具体化。 ArtikelNR变量$ row [" ArtikelNr"] shoudld被分配到隐藏的表格,并且可以在下一页上访问,如ArtikelNr = $ _REQUEST [' ArtikelNr'];它的工作原理到目前为止,但它始终是最重要的项目编号,而不是我选择的行特定的项目编号。如何制作$ form4 =' &#39 ;;特定行,所以我可以在下一页抓住它并将其添加到购物篮中。
<?php include 'databas_connect.inc'; ?>
<?php
$sql = "SELECT `ArtikelNr`, `ArtikelNamn`, `Storlek`, `ArtikelPris`,
`artikelbild`FROM `artiklar` ";
$result = $conn->query($sql);
if ($result->num_rows > 0)
{
echo "<table><tr><th>Antal</th><th>ArtikelNr</th><th> ArtikelNamn</th>
<th>Storlek</th><th>ArtikelPris</th><th>Artikelbild</th></tr>";
// output data of each row
while($row = $result->fetch_assoc())
{
$number =1;
$artnr = $row["ArtikelNr"];
$prefix = "pre_";
$sufix = 1;
${$prefix .$sufix} =$row["ArtikelNr"] ;
$form1 = '<form action="sida61.php" method="post">';
$form2 = '<label for="antal"></label>';
$form3 = '<input type="text" name="antal" size="2" maxlength="2"value="1" id="antal">';
$form4 = '<input type="hidden" name="ArtikelNr" value="'.${$prefix .$sufix}.'"/> ';
$form5 = '<input type="submit" name="btn_submit" value="KÖP" />';
$form6 = '</form>';
$form = $form1 . $form2 . $form3 . $form4 . $form5 ;
$img = "<img src=./img/>";
$image=$row['artikelbild'];
$path ="<img src='./img/".$image."' />";
echo "<tr><td>" .$form. "</td><td>" . $row["ArtikelNr"]. "</td><td>" .
$row["ArtikelNamn"]. " </td><td> " . $row["Storlek"]. " </td><td>" .
$row["ArtikelPris"]. " </td><td>".$path."</td></tr>";
++$sufix;
}
echo "</table>";
} else {
echo "0 results";
}
$conn->close();
?>
这是sida61.php的代码
<?php include 'databas_connect.inc'; ?>
<?php
session_start();
$ArtikelNr = $_REQUEST['ArtikelNr'];
$antal = $_REQUEST['antal'];
//$KundNr = $_SESSION["Kund"];
// attempt insert query execution
$sql = "INSERT INTO `kundkorg`( `ArtikelNr`, `antal`, `KundNr`)
VALUES (1,$antal, 2)";
if(mysqli_query($conn, $sql)){
print_r($_REQUEST); // I just do this to se value of $_REQUEST it is always 8 since I have 8 items i dont know why
}
else
{
echo "ERROR: Could not able to execute $sql. " .
mysqli_error($conn);
}
// close connection
mysqli_close($conn);
//header("Location: 6.php");
?>
答案 0 :(得分:1)
不确定为什么要尝试添加前缀和后缀,因为您只想在隐藏字段中传递$row["ArtikelNr"]
。
您还错过了将</form>
结束标记连接到$form
变量。
所以这段代码应该达到你想要的效果。
while($row = $result->fetch_assoc()) {
$form .= '<form action="sida61.php" method="post">';
$form .= '<label for="antal"></label>';
$form .= '<input type="text" name="antal" size="2" maxlength="2"value="1" id="antal">';
$form .= "<input type='hidden' name='ArtikelNr' value='{$row['ArtikelNr']}'/>";
$form .= '<input type="submit" name="btn_submit" value="KÖP" />';
$form .= '</form>';
$img = "<img src='./img/{$row['artikelbild']}'/>";
echo "<tr><td>$form</td><td>{$row['ArtikelNr']}</td><td>
{$row['ArtikelNamn']}</td><td>{$row['Storlek']}</td><td>
{$row['ArtikelPris']</td><td>$path</td></tr>";
}
答案 1 :(得分:0)
是的,我现在错过了错过将结束标记连接到$ form变量。正确的代码是
$form1 = '<form action="sida61.php" method="post">';
$form2 = '<label for="antal"></label>';
$form3 = '<input type="text" name="antal" size="2" maxlength="2"value="1"
id="antal">';
$form4 = '<input type="hidden" name="ArtikelNr" value="'.
$row["ArtikelNr"].'"/> ';
$form5 = '<input type="submit" name="btn_submit" value="KÖP" />';
$form6 = '</form>';
$form = $form1 . $form2 . $form3 . $form4 . $form5 . $form6 ;
非常感谢@RiggsFolly
当我尝试你的代码时,它在每一行上添加了一个新表单,这使得我在第9行有9个输入字段。但是无论如何你帮了我!!