使用链接onClick

时间:2017-06-20 04:24:39

标签: javascript php html ajax pdo

点击特定链接时,我无法上传数据库信息。

似乎数据没有发送到upload.php

HTML:

<a href="#" class="btn" onClick="$(this).hide(); myfunc('.$a.', '.$b.')" role="button"> Mylink </a>

使用Javascript:

<script type="text/javascript">

            function myfunc(a, b)
    {
                          $.ajax({
                            url: "upload.php",
                            type: "POST",
                            data: {"a": a, "b": b},
                            success:function() {
                             alert( "Done");
                            }
                           });
    }


        </script>

upload.php的:

if (isset($_POST['a']) && isset($_POST['b'])) 
    {


        $a = $_POST['a'];
        $b  = $_POST['b'];


        $query1 = $db->prepare('UPDATE  users SET a = a + 1 where uid="'.$a.'"');                                        
        $query1->execute();

        $query2 = $db->prepare('UPDATE  users SET b = b + 1 where uid="'.$b.'"');                                        
        $query2->execute();

        if (!$query1 || !$query2)
        { 
            echo "Erreur SQL";
            exit();
        }

    }       

1 个答案:

答案 0 :(得分:0)

第一:您的HTML应该是这样的myfunc(<?php echo $a ?>,<?php echo $b ?>)"

<a href="#" class="btn" onClick="$(this).hide(); myfunc(<?php echo $a ?>,<?php echo $b ?>)" role="button"> Mylink </a>

第二:在ajax请求中添加错误处理部分

  function myfunc(a, b)
    {
          $.ajax({
            url: "upload.php",
            type: "POST",
            data: {"a": a, "b": b},
            success:function() {
             alert( "Done");
            },
            error:function(jqXHR,error_string,error){

             console.log(error);

            }
           });
    }

3rd :使用bind_param值来避免SQL注入,整数值不应该用单引号括起来

$query1 = $db->prepare('UPDATE  users SET a = a + 1 where uid=?');   
$query1->bind_param('i',$a);                                     
$query1->execute();

第4次:在upload.php文件中,您首先准备$query2并尝试执行$query1我认为这是错误的,请更正。