编辑:问题已修复,代码中的前一部分格式错误
我正在为在线购物网站撰写搜索结果页面,我遇到了一个问题。
以下是从我的数据库中提取后回显迭代的代码:
$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&query=3">
<input type="hidden" name="prod1" value="4">
</div>
<script>
function submitForm1(){
document.getElementById('prod1').submit();
}
</script>
据我所知,这个没有输出,无法弄清楚为什么
答案 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>