将表格行发送到下一页

时间:2017-07-12 10:50:13

标签: php mysql

我试图创建一个简单的网上商店,我在每行列出一些项目(订购),有一个表单字段,用于告知客户需要多少商品。然后她提交一个按钮,动作是另一个页面,其中项目将被添加到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");
?>

2 个答案:

答案 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个输入字段。但是无论如何你帮了我!!