我的程序应该能够从某个表中绘制SQL计数,并为计数的数字生成文本框的数量。
我真正想要的是,根据我点击的字母值按钮,显示以单击字母按钮开头的项目的文本框数量。
<button type="submit" name="sort" id="S" value = "S" onclick="<?php $alphabet='S'; ?>">S</button>
<?php $query = "select count(*) from product where productname like '$alphabet%' ";
$result = mysqli_query($dbconn,$query);
while($row= mysqli_fetch_array($result)) {
$count=$row['count(*)'];
}
for($counter = 0; $counter < $count; $counter++){ //Create text boxes and add to cart buttons
echo "<br>";
echo "<br>";
echo "<label>Product ID: </label><input readonly type='text' name='productname' id=''><br>";
echo "<label>Product Name: </label><input readonly type='text' name='opening' id='' >"
."<button type='button' class='deliver' id='' onclick=''>Add To Cart</button><br>"
."<button type='submit' class='deliver' id='viewcart' onclick='window.location.href='BACart.php';'>View Cart</button><br>";
echo "<label>Quantity: </label>";
echo "<button type='button' class='quantityaddsub' id='sub' onclick='quantitysub($counter)'>-</button>";
echo "<input type='text' class='quantity' name='' id='quantity".$counter."' value=0>";
echo "<button type='button' class='quantityaddsub' id='add' onclick='quantityadd($counter)'>+</button><br> ";
}?>
我发现这样做真的很难。我的方法是否正确,或者有更简单的方法吗?或者我必须使用AJAX在javascript中调用我们的php函数,因为我已经在别处读过了吗??
答案 0 :(得分:2)
您必须使用AJAX,因为 PHP代码在服务器上执行,而 javascript由浏览器执行。
浏览器通过请求和响应(或websockets,但这是一种不同的技术)与服务器通信,并且促进此类通信的技术是叫AJAX(你也提到过)
答案 1 :(得分:0)
只有完成Marcus的答案。
如果你使用jQuery,可以使用$ .ajax来执行ajax代码,funciona的文档是here。
否则,您可以使用纯JavaScript来执行此请求,在w3schools中,我们发现this example
答案 2 :(得分:0)
答案
不,您无法在Javascript事件监听器上运行PHP代码
<强>为什么吗
PHP代码在Javascript代码甚至在DOM中之前运行(而不是在服务器甚至将HTML发送到客户端的浏览器之前)。因此,您可以将PHP代码放入以获取所述代码的输出。但是,一旦将DOM呈现给浏览器,PHP代码就会100%消失并超出等式(只留下故意输出的内容,例如echo
)。最终用户(及其浏览器)永远不会看到您的PHP代码。
示例强>
var test = "<?php echo "HELLO!"; ?>";
在DOM / Source中,此Javascript代码只读为:
var test = "HELLO!";
可能的解决方案
如上所述,使用AJAX按需点击PHP脚本。
答案 3 :(得分:-1)
我设法解决了这个问题!我所做的就是从这个网站http://www.w3schools.com/php/php_ajax_database.asp获取代码,在阅读完本教程后,我理解并改变了一些代码以适应我的按钮而不是下拉列表并更改了sql语句。学习ajax并不像我想的那么难,这一切都要归功于W3的在线开源代码。即使我想要显示文本框,但html表似乎很好,所以我会用它来做!
投票给这个答案,这样任何想做我正在做的事情的人都可以从中学习!感谢所有先前回答过我问题的人:)