php echo在第一次迭代时遗漏<form>

时间:2017-09-15 11:42:50

标签: php

编辑:问题已修复,代码中的前一部分格式错误

我正在为在线购物网站撰写搜索结果页面,我遇到了一个问题。

以下是从我的数据库中提取后回显迭代的代码:

$count=1;
while($prod=$gettingprods->fetch_assoc()){
    echo"<div style='text-align:center;margin-left:10px;width:350px;height:225px;display:inline-block;float:left;border-radius:7px;border-color:red;border-style:inset;margin-bottom:10px'>
    <h5>".$prod['brand_name']." ".$prod['product_name']."</h5>
    <h6>Chez ".$prod['shop_name']."</h6>
    <h5 style='font-color:red'>Prix Unitaire LBP/USD: ".$prod['pis_lbp']."/".sprintf('%.2f',$prod['pis_usd'])."</h5>
    <form action='addtocart.php?val=".$count."' id='prod".$count."' method='post'>
    <p><input type='number' name='qty".$count."' min='1' placeholder='Quantité'/></p>
    <p><div id='buttonNext' name='add".$count."' onclick='submitForm".$count."()'>
Ajouter
</div></p>
    <input type='hidden' name='url".$count."' 
value='".substr($_SERVER['REQUEST_URI'],1)."'/>
    <input type='hidden' name='prod".$count."' value=".$prod['pis_id'].">
    </form>
  </div>
  <script>
  function submitForm".$count."(){
      document.getElementById('prod".$count."').submit();
  }
  </script>";
  $count+=1;
}

虽然我没有显示所需结果的问题,但表格不允许我提交FIRST产品显示,无论产品如何。在控制台中,每当我尝试提交该表单时,它都会给我以下声明:

Uncaught TypeError: Cannot read property 'submit' of null
at submitForm1 (searchresults.php?type=shop&query=3:99)
at HTMLDivElement.onclick (searchresults.php?type=shop&query=3:90)

问题只发生在第一个div上,下面附有一个页面如何的截图示例: http://prntscr.com/glgqgh

任何帮助将不胜感激。请注意,此时安全性无关紧要。感谢

编辑:这是检查员的示例输出代码:

<div style="text-align:center;margin-
left:10px;width:350px;height:225px;display:inline-block;float:left;border-
radius:7px;border-color:red;border-style:inset;margin-bottom:10px">
    <h5>Al Wadi Al Akhdar Sweet Corn</h5>
    <h6>Chez Supermarché Test</h6>
    <h5 style="font-color:red">Prix Unitaire LBP/USD: 1500/1.00</h5>

    <p><input type="number" name="qty1" min="1" placeholder="Quantité"></p>
    <p></p><div id="buttonNext" name="add1" onclick="submitForm1()">
Ajouter
</div><p></p>
    <input type="hidden" name="url1" value="searchresults.php?type=shop&amp;query=3">
    <input type="hidden" name="prod1" value="4">

  </div>
<script>
function submitForm1(){
  document.getElementById('prod1').submit();
}
</script>

据我所知,这个没有输出,无法弄清楚为什么

1 个答案:

答案 0 :(得分:0)

为什么要为每个表单重复提交功能?

尝试为所有表单创建一个函数,试试这个:

PHP:

$count=1;
while($prod=$gettingprods->fetch_assoc()){
    echo
    "<div style='text-align:center;margin-left:10px;width:350px;height:225px;display:inline-block;float:left;border-radius:7px;border-color:red;border-style:inset;margin-bottom:10px'>
        <h5>".$prod['brand_name']." ".$prod['product_name']."</h5>
        <h6>Chez ".$prod['shop_name']."</h6>
        <h5 style='font-color:red'>Prix Unitaire LBP/USD: ".$prod['pis_lbp']."/".sprintf('%.2f',$prod['pis_usd'])."</h5>
        <form action='addtocart.php?val=".$count."' id='prod".$count."' method='post'>
            <p><input type='number' name='qty".$count."' min='1' placeholder='Quantité'/></p>
            <p>
                <div id='buttonNext' name='add".$count."' onclick='submitForm(".$count.")'>
                    Ajouter
                </div>
            </p>
            <input type='hidden' name='url".$count."' value='".substr($_SERVER['REQUEST_URI'],1)."'/>
            <input type='hidden' name='prod".$count."' value=".$prod['pis_id'].">
        </form>
    </div>";
    $count+=1;
}

JS:

<script>
    function submitForm(count){
        document.getElementById('prod'+count).submit();
    }
</script>