我对网站建设非常陌生,并且想知道是否有人能够帮助我处理我遇到的问题。我正在创建一个标准购物网站,其中包含用于作业的产品数据库,并且每次单击按钮时尝试将数量减少1。我试图做的是创建一个javascript函数,在单击时更新表,但此刻没有任何反应。由于我的新手知识能力,我不知道这是否是更新mysql表的正确方法,并且非常感谢对正确方法的任何帮助。
<?php
$sql = "SELECT id, name, description, price , quantity FROM products;"; //access table named products
$result = mysql_query($sql);
while(list($id, $name, $description, $price, $quantity) = mysql_fetch_row($result)) { // while loop to output columns in table
echo "<tr>";// table
echo "<td>$name</td>";// echo name column
echo "<td>$description</td>";// echo description column
echo "<td>$price</td>";// echo price column
echo "<td>$quantity</td>";//echo quantity column
echo "<td><a href=\"shoppingcart.php?action=add&id=$id\">Add To Cart</a></td>";// Hyperlink to shopping cart
echo "</tr>";
}
if ($quantity <= 9 ) // if statement for quantity
{
$msg = "Stock is low";
mail("*******@hotmail.com","My subject",$msg);
}
?>
</table>
<script>
function myfunction() // javascript function
{
<?php
mysqli_query($con, "UPDATE products SET quantity - 1 9 WHERE id = '1'");// update quantity
mysqli_close($con);
?>
}
</script>
<a href="shoppingcart.php">View Cart</a> // view cart hyperlink
<button onclick="myfunction()">Click</button> // click button to call my function
</body>
答案 0 :(得分:1)
问题:您无法在JavaScript代码中使用php函数(mysqli
- php函数)。
说明:了解客户端和服务器如何相互交互。客户端向服务器发送请求。服务器使用php处理此请求,向您发送一些HTML代码(由php生成)和java脚本代码(与html相同)。 PHP在这一点上做了他的工作。现在,JavaScript代码开始了他的工作。 JavaScript在用户浏览器中工作,他不能使用php的功能和对象(注意,这一步没有php)。在JavaScript中你可以对服务器做一些ajax请求,你将再次处理php并再次向浏览器发送一些html / json数据。完成所有这些操作后,php结束并启动javascript。等等等。
因此...
解决方案:您可以点击按钮发出ajax请求:
var data = // put some data here
$("#buttonID").on('click', function() {
$.ajax({
url: "yourPhpScriptWhereYouWillExecuteYourQuery.php";
data: data
});
}
查看url
字段。单击按钮时,将发送对此URL的ajax-request。此外,来自字段data
的数据将与此请求一起发送。
答案 1 :(得分:0)
我看到你的思维过程来自哪里,我喜欢它!但这是不正确的。看,你不能像这样嵌入PHP
function myfunction( // javascript function
{
<?php
mysqli_query($con, "UPDATE products SET quantity - 1 9 WHERE id = '1'");// update quantity
mysqli_close($con);
?>
因为javascript是客户端而PHP是服务器端,这意味着,实际上,两者并不相互看到,所以实际上你有一个空函数。 但是,如果您想使用javascript执行此操作,则可以使用AJAX。现在&#34;香草&#34; javascript ajax调用难以使用,但jquery更容易!你可以做这样的事情
function ajaxFunction(){
$.ajax({
type: "POST",
url: "doStuff.php",
data: {key: value}, //data to send as key-value pairs
context: this,
success: function(data){
//do stuff when done running
}
});
}
这应该可以做到!