单击按钮更新SQL表

时间:2014-04-25 16:57:38

标签: php mysql

我对网站建设非常陌生,并且想知道是否有人能够帮助我处理我遇到的问题。我正在创建一个标准购物网站,其中包含用于作业的产品数据库,并且每次单击按钮时尝试将数量减少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>

2 个答案:

答案 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
          }
        });
}

这应该可以做到!