2017-06-20 62 views
0

我在点击特定链接时无法上传数据库信息。上传带链接的数据库onClick

看来,数据不被发送到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(); 
     } 

    }  
+0

什么是myfunc('。$ a。','。$ b。')中的$ a和$ b? –

+0

我传递给myfunc的两个参数。其实他们是整数。一切都可以,例如我运行代码时我喜欢myfunc(1,2),但是1和2不会发送到upload.php,所以我无法让他们上传我的数据库 – Dilak

+0

已尝试在内部发出警报函数myfunc(a,b)? –

回答

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); 

      } 
      }); 
    } 

:使用bind_param的值避免SQL注入和整数值不应该被单引号括起来

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

第四:在你upload.php提交您准备$query2第一,试图执行$query1我认为这是拼写错误,请更正。

+0

谢谢你的回答,但它不工作。我正在调用myfunc,当我点击链接时会显示“完成”。问题是数据没有发送到上传.php – Dilak

+0

if(isset($ _ POST ['a'])&& isset($ _ POST ['b'])) {-----}这部分不是执行。这就是为什么我确信数据没有发送到upload.php – Dilak

+0

你有解决方案@JYoThl吗? – Dilak