2017-06-20 89 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