PHP从生成的文本框传递值

时间:2016-02-25 13:00:32

标签: php textbox html-table

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

以下是代码:

$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;
        }

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

我得到了:

  

未定义索引:第135行的AantalBestellen0;

2 个答案:

答案 0 :(得分:1)

你可以使用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类,将其插入数据库。

修改

第135行中的引语:似乎不正确。试试这个:

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

答案 1 :(得分:0)

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

使用

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

确定已设置帖子值

对于hoeveelheid来说也是如此:

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

回显输入字段:

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

另外,别忘了清除以下空格:

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