HTML输入按钮JS onClick

时间:2018-06-13 09:17:39

标签: javascript html button input

我只是在按下按钮时尝试执行脚本,我的问题是每次刷新或进入页面时都会执行脚本......

我的JS功能:

<script>
    document.getElementById("addcarrinho").onclick = function ()
    {
        alert("<?PHP add_prod_carrinho(get_produto(@$_GET['id'])[0][id_produto]); ?>");
    };
</script>

这个功能每次进入页面都会执行,有人可以解释一下原因吗?

这是我的第一个功能:

<script>
    function add_carrinho()
    {
        alert("<?PHP add_prod_carrinho(get_produto(@$_GET['id'])[0][id_produto]); ?>");
    };
</script>

也行不通。

这是脚本执行的功能:

function add_prod_carrinho($prod_id)
{
    global $connection;

    $query = "INSERT INTO carrinho (id_cliente, id_produto) VALUES ('".$_SESSION['user_id']."', '".$prod_id."');";

    if(!$connection->query($query))
    {
        echo 'Houve um erro ao adicionar o produto ao carrinho.';
    }
}

这是此代码的完整页面:

<style type="text/css">
.tg  {border-collapse:collapse;border-spacing:0;}
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg .tg-yw4l{vertical-align:top}
.tg .tg-yw42{text-align:left; vertical-align:top;}
</style>

<script>
    document.getElementById("addcarrinho").onclick = function ()
    {
        alert("<?PHP add_prod_carrinho(get_produto(@$_GET['id'])[0][id_produto]); ?>");
    };
</script>
                    <!-- Begin Post -->
                    <div class="content_product">
                        <h2>Produtos - <?php echo get_produto(@$_GET['id'])[0][nome]; ?><span class="title-bottom">&nbsp;</span></h2>
                        <?php
                                echo '<table class="tg">
                                      <tr>
                                        <th class="tg-yw4l"><img src="css/images/product-img1.jpg" alt="Imagem de '.get_produto(@$_GET['id'])[0][nome].'" /></th>
                                        <th class="tg-yw42">
                                            '.get_produto(@$_GET['id'])[0][nome].'
                                            </br>
                                            '.get_produto(@$_GET['id'])[0][descricao_breve].'
                                            </br>
                                            </br>
                                            <span>Preço s/iva: </span>'.get_produto(@$_GET['id'])[0][preco_sem_iva].'<span>€</span>
                                            </br>
                                            <span>Preço c/iva: </span>'.get_produto(@$_GET['id'])[0][preco_com_iva].'<span>€</span>
                                            </br>
                                            </br>
                                            '.get_produto(@$_GET['id'])[0][id_produto].'
                                            <input id="addcarrinho" type="button" value="Adicionar ao carrinho" onclick="add_carrinho()"/>
                                        </th>
                                      </tr>
                                    </table>
                                            </br>
                                            '.get_produto(@$_GET['id'])[0][descricao].'';
                        ?>
                    </div>
                    <!-- End Post -->

我正在使用容器,因此此页面上没有正文或标题...

有人可以帮助我吗?

由于

编辑:感谢@vogomatix帮助我。 解决方案:

<script>
  $(".addcarrinho").click( function() {
    $.ajax({
       url: "http://your_server/add_prod.php",
       data: { id: your_id }
    })
  })
</script>

1 个答案:

答案 0 :(得分:0)

你需要

  1. 一个脚本,它处理来自页面的请求,包含方法add_prod_carrihno并接收方法的参数。让我们称之为add_prod.php
  2. 生成页面的脚本,例如的index.php
  3. 在index.php中,您有 onClick 方法,该方法会生成调用http://your_server/add_prod.php?id=1234的请求,其中1234是您要插入的ID。

    \\ load jQuery here....
    
    <script>
      $(".addcarrinho").click( function() {
        $.ajax({
           url: "http://your_server/add_prod.php",
           data: { id: your_id }
        })
      })
    </script>