在同一个pag中调用php函数的Ajax函数不起作用

时间:2017-08-27 17:30:29

标签: javascript php jquery ajax

我的问题是,我想调用的php函数中的Ajax与php函数相同并不起作用。我想这样做,当我按下按钮时,页面不会重新加载,并且将调用该功能。如果有意义的话,我把我的标签用ajax放在底部,php函数放在页面顶部。这是我的代码:

Ajax:

<script>
          function getData() {
              $.ajax({
                    type: "GET",
                    url: "view.php",
                    data: {action: 'PakeistiCashreg'}, 
                    success: function(data){
                        alert('Kasos aparatas sėkmingai pakeistas');
                    }
                  });
                }
          </script>

我想打电话给Php函数:

if(isset($_GET["action"])) {
   if($_GET["action"] == "PakeistiCashreg") {
      mysql_query("UPDATE ".$table['invoices']." SET `CashReg` = '".$_POST['CashRegInput']."' WHERE `id` = '156' LIMIT 1");
   }
}

行动发生的按钮:

<form method="post"><?php echo CASHREG; ?>:<select name="CashRegInput" id="CashRegInput" class="Input3"><option></option>
                    <?php
                    foreach($CashReg as $key => $value) {
                        echo '<option value="'.$value.'">'.$value.'</option>';
                    }
                    ?>
                </select><button name="PakeistiCashreg" onclick="getData();" id="PakeistiCashreg">Pakeisti kasos aparatą</button></form>

2 个答案:

答案 0 :(得分:0)

试试这个: 加价:

ref="ns1:venta"

脚本:

<form name="some-form" method="post" onsubmit="getData(event);">
    <?php echo CASHREG; ?>:
    <select name="CashRegInput" id="CashRegInput" class="Input3">
        <option></option>
        <?php
            foreach($CashReg as $key => $value) {
                echo '<option value="'.$value.'">'.$value.'</option>';
            }
        ?>
    </select>
    <button type="submit" name="PakeistiCashreg" id="PakeistiCashreg">Pakeisti kasos aparatą</button>
</form>

让我知道它是否适合您。

答案 1 :(得分:0)

我不确定,但我认为你说你有一个文件view.php,其中包含最初加载的页面和ajax调用的处理程序。如果那不是您所说的话,请忽略此答案。

执行ajax请求与加载页面不同。当客户端收到ajax响应时,它所做的只是调用适当的处理程序。在这种情况下,它所做的就是alert('Kasos aparatas sėkmingai pakeistas');。它是在第一次加载页面时尝试运行处理程序的,除非您已在$_GET("action")添加了一个应该阻止此操作的检查。您需要一个单独的URL和一个单独的ajax调用处理程序。例如,您可以将ajax调用URL更改为action.php,然后将带有数据库调用的代码段移动到名为action.php的单独文件中。

(实际上,PHP实际上只用于返回HTML,而不是用于ajax调用。所以最好用其他语言/框架中的处理程序替换action.php。但PHP可以工作,而且在任何如果我对你的设置了解不多,建议如何做到这一点。)