2015-10-17 177 views
-1

我想使用Ajax插入數據。當我點擊按鈕(接受)時,應該插入值1,並且按鈕應該改爲接受。我曾嘗試下面的代碼Ajax將數據插入數據庫

<script> 
    $(function(){ 
     $('#submit').on('click', function() { 
      var name = $('#app').val(); 
      if (name.length > 0) { 
       $.ajax({ 
        url: 'approve.php', 
        method: 'POST' 
        data: { app: name }, 
        success: function() { 
         alert("success"); 
        } 
       }); 
      } 
     }); 
    }); 
</script> 

HTML代碼

<form action="" method="post"> 
    <input type="hidden" id="app" value="1"/> 
    <input id='submit' type='submit' value='Accept'> 
</form> 

approve.php是

$u_id = $_SESSION['UserID']; 
$appinfo = $_POST['app']; 
$sql = "UPDATE tbl_bides SET selected='$appinfo' WHERE bidder_id = '".$u_id."'" or die(mysql_error()); 
$Result = mysql_query($sql,$con) or die(mysql_error()); 

當我運行這個沒有任何反應。請幫忙!!

+0

這個'$( '#應用程序')上('#submit',...'沒有任何意義,您可以將偵聽器設置爲表單並讓它在'submit'上觸發,或者您對submit- – Jeff

+0

嘗試一下基本知識,'$('#app')。submit'將會調用AJAX –

+0

'submit'事件需要綁定到'form',你的代碼真的沒有意義 –

回答

1

嘗試此

HTML

<input type="hidden" value="1" id="app"> 
<input type="submit" value="SUBMIT" id="submit"> 

JS

$('#submit').click(function() { 
var name = $('#app').val(); 

$.ajax({ 
    url: 'approve.php', 
    data:"app="+ name, 
    success:function(){ 
      alert("success"); 
    } 
    }); 
}); 

approve.php(使用PDO)

include('connection.php'); 


$u_id = $_SESSION['UserID']; 

if(isset($_POST['app'])) { 
    $appinfo = $_POST['app']; 

    $queryUpdate = $YourConnectionName->prepare("UPDATE tbl_bides SET selected=:appinfo WHERE bidder_id=:u_id"); 
    $queryUpdate->execute(array(':u_id' => $u_id, ':appinfo'=> $appinfo)); 
} 

connection.php

$username = 'YourUsernameOfDatabase'; 
$password = 'YourPasswordOfDatabase'; 

try { 
    $YourConnectionName = new PDO('mysql:host=Yourhost; dbname=YourDatabaseName', $username, $password); 
    $YourConnectionName->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $YourConnectionName->exec("SET CHARACTER SET utf8"); 
} catch (PDOException $e) { 
    echo 'You are not connected'; 
    $e->getMessage() . "<br/>"; 
    die(); 
} 
+0

但仍然沒有任何反應。它沒有進入到數據庫 – Andrew

+0

編輯,檢查出來。 –

1

您的JavaScript錯誤。首先,您正試圖在隱藏的表單字段上設置「提交」事件處理程序。自然只有<form>自動觸發submit事件。其次,您沒有設置method參數,因此$ .ajax通過GET提交您的數據,這意味着您的PHP代碼不會看到任何值。

你是最好的提交按鈕設置一個單擊事件:

<script> 
    $(function(){ 
     $('#submit').on('click', function() { 
      var name = $('#app').val(); 

      if (name.length > 0) { 
       $.ajax({ 
        url: 'approve.php', 
        method: 'POST' 
        data: { app: name }, 
        success: function() { 
         alert("success"); 
        } 
       }); 
      } 
     }); 
    }); 
</script> 

你approve.php:

$u_id = $_SESSION['UserID']; 
$appinfo = $_POST['app']; 
$sql = "UPDATE tbl_bides SET selected='$appinfo' WHERE bidder_id = '$u_id'"; 
$Result = mysql_query($sql, $con) or die(mysql_error()); 
+0

嘗試過但沒有任何反應。 – Andrew

0
Add One more parameter in ajax for submitting post data 

    $.ajax({ 
       url: 'approve.php', 
       type: 'POST' 
       data:"app="+ name, 
       success:function(){ 
        alert("success"); 
       } 
      })); 
+0

我已更新我的帖子。請檢查 – Andrew

+0

你好改變數據:{app:name}到數據:{'app':name}在ajax代碼 – surabhivin

+0

嗨,我不知道什麼是錯的,我也試過。沒有任何反應 – Andrew