PHP 从生成的文本框中传递值

PHP passing values from generated textboxes

我正在创建一个 PHP 网络应用程序并结合 SQL 来订购东西。我根据我拥有的记录数量随机生成文本框。我想传递单个值以插入到数据库中。我希望每个单元格都有一个文本框,我可以在其中输入值并将它们与该单元格一起传递。因此,如果我想订购 2 个单元格 1,我想将该值传递到数据库中。

代码如下:

$i = 0;
        if ($AanbodsTabel === false){
            die(mysql_error());
        }
        while ($row = mysqli_fetch_array($AanbodsTabel)){
            echo "<tr><td width = 4%>". htmlentities($row['Fustcode']) . "</td>";
            echo "<td width = 8%>" . htmlentities($row['cultivar']) . "</td>";
            echo "<td width = 6%>" . htmlentities($row['AantalFust']) . "</td>";
            echo "<td width = 6%>" . htmlentities($row['AantalPerFust']) . "</td>";
            echo "<td width = 6%>" . htmlentities($row['AantalStelen']) . "</td>";
            echo "<td width = 4%><input type ='text' id='Bestelbox' value='' name='AantalBestellen".$i."'></td>";
            echo "<td width = 6%>" . htmlentities($row['AantalFustBesteld']) . "</td>";
            echo "<td width = 6%>" . htmlentities($row['AantalStelenBesteld']) . "</td>";
    135:    echo '<td width = 8%><a href="Home.php?aanbodid='. htmlentities($row['aanbodid']) .'&hoeveelheid='. $_GET["AantalBestellen$i"]. '"'
                    . ' class = "btnBestel">Bestel</a></td></tr>';
            $i = $i + 1;
        }

我得到的错误是未定义的索引。我猜这是因为名称不是唯一的。但无论我做什么,我仍然会收到错误。

我得到:

undefined index: AantalBestellen0 on line 135;

你在哪里得到未定义的索引?在那个 $_POST['AantalBestellen'] ?

使用

if (isset($_POST['AantalBestellen'])) { }

确定已设置post值

稍后对 hoeveelheid 做同样的事情:

if (isset($_GET['hoeveelheid'])) { }

回显输入字段:

echo "<td width = 4%><input type ='text' id='Bestelbox' value='" . $_GET['hoeveelheid'] . "' name='AantalBestellen'></td>";

此外,不要忘记清除空格:

'&hoeveelheid = '. $_POST //near the =

你可以使用 javascript 例如 请注意,我会将您需要的代码加粗,其余的是上下文。 注意这是我的一个类似项目,但你应该明白了。

<div id="meldingen_top_div">
           <?php 

        echo "<div class='alert_Top_Div_Left_Outer'>
             <input type='submit' value='Openstaande Meldingen' class='btnLoad' name='' onclick='toggleThis(" . '"' . "#meldTableTop" . '"' . "), toggleThis(".'"'.".alert_Top_Div_Left_Inner".'"'.")'/>

       <div class='alert_Top_Div_Left_Inner'>
       <table class='tableRed' id='meldTableTop'><caption/><thead/><tfoot/><tbody>";

        $sqlVII = "SELECT Meldingen.Melding_id, FORMAT(Meldingen.Melding_datum, 'dd-mM-yyyy') AS Melding_datum, Producten.Product_naam, Leveranciers.Leverancier_naam, Meldingen.Melding_notitie 
FROM MovieWorld.dbo.Producten,
 MovieWorld.dbo.Meldingen,
 MovieWorld.dbo.Categorieen,
  MovieWorld.dbo.Leveranciers
 WHERE Producten.Product_id = Meldingen.Product_id AND Producten.Categorie_id = Categorieen.Categorie_id AND Categorieen.Leverancier_id = Leveranciers.Leverancier_id AND Producten.Product_actief = 1 AND Meldingen.Melding_actief = 1
";

        $resV= $db->executeQuery($sqlVII);
                    $i=1;

                    if($resV!=FALSE){
                    while($arrx = sqlsrv_fetch_array($resV)){   

与您相关的代码:

    echo "<tr>

    <td><p class='meldDate'>{$arrx['Melding_datum']}</p></td>
    <td>{$arrx['Product_naam']}</td>
    <td>{$arrx['Leverancier_naam']}</td>   
    <td><input id='txt{$i} type='text' name='thisdoesntevenmatter' value='..'/></td>
    <td><img src='somerandompath.png' onclick='getTxt(".'"txt{$i}"'.")'/></td>
 </tr>"



    $i=$i+1;
                    }



                    }else{}echo '</tbody></table></div></div>';
           ?>
        </div>

和 Javascript 函数

function getTxt(id){
    var tempId = document.getElementById(id).value;
return tempId;
}

但是..您也可以将值发送回 php 变量,或者使用 AJAX 将其传递给 PHP class 以将其插入数据库。

编辑

您在第 135 行的引用:似乎不正确。试试这个:

    echo '<td width = 8%><a href="Home.php?aanbodid={htmlentities($row['aanbodid']) }&hoeveelheid={$_GET['AantalBestellen$i']}"'
                    . ' class = "btnBestel">Bestel</a></td></tr>';