在按钮'上运行PHP代码;s onclick事件,或者使用Ajax
Run a PHP code on button's onclick event possible or use Ajax?
Hi我的程序应该能够从某个表中绘制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函数,就像我在其他地方读到的那样。。?
您必须使用AJAX,因为PHP代码是在服务器上执行的,而javascript是在浏览器上执行的。
浏览器通过请求和响应(或websocket,但这是一种不同的技术)与服务器通信,促进这种通信的技术被称为AJAX(正如您所提到的)
仅用于完成Marcus的答案。
如果你使用jQuery,可以使用$.ajax来执行ajax代码,函数的文档就在这里。
否则,你可以使用纯javascript来完成这个请求,在w3schools中,我们发现了这个例子
答案
不,您不能在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脚本。
我设法解决了这个问题!我所做的只是从这个网站获取代码http://www.w3schools.com/php/php_ajax_database.asp在阅读了教程之后,我以某种方式理解了这一点,并修改了一些代码以适应我的按钮而不是下拉列表,并更改了sql语句。学习ajax并不像我想象的那么难,这要归功于W3的在线开源代码。甚至想过我想显示文本框,但html表似乎很好,所以我将就一下!
投票选出这个答案,这样无论谁想做我正在做的事情,都可以从中学习!感谢之前回答我问题的所有人:)
- 如何在执行此特定onclick事件时执行JavaScript函数
- 如何调用“;链接_;在onclick事件上使用Javascript
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 选择onclick事件jquery
- 如何刷新列表框内容onclick或blur事件
- 执行php函数的onclick事件的其他替代方案
- 动态创建OnClick事件Javascript
- onClick事件未触发reactjs
- 使用java脚本更改onClick事件中菜单选项卡的颜色
- 如何使用OnClick事件通过参数调用来调用PHP函数
- 第二个事件[onClick]不起作用
- 复选框事件onclick不起作用
- 如何在jQuery中为通知添加事件onClick
- JS函数不响应事件onclick
- 使用事件onclick访问if语句Javascript中变量的值
- 如何在事件onclick中抓取文本
- 如何绑定id < light >与事件Onclick
- 未找到JS事件OnClick
- 如何在js/prototype中触发具有特定顺序的事件(onclick)
- 无法触发javascript事件OnClick的复选框