2013-10-04 30 views
0

您好,我試圖讓當您選擇某些選項選擇的選項從使用Ajax的數據庫中被writen一個<select>菜單,這裏是我到目前爲止acomplished:在更改選擇菜單中添加結果到數據庫

這是我的選擇菜單:

<select name="status"> 
    <option value="">Select option:</option> 
    <option value="aproved">aproved</option> 
    <option value="canceled">canceled</option> 
    </select> 

這裏是我的Java腳本,應選擇變化,並將其發送到後端PHP文件在數據庫連接如和UPDATE查詢是,選擇的方法是OT在完成選擇後,它不會立即更新。目標是一旦用戶選擇結果進入數據庫時​​需要按下按鈕或執行其他任何操作。

<script> 
$(document).ready(function(e) { 
$('select[name=status]').change(function(){ 

     selectstatus = $("select[name=status]").val(); 

     $.ajax({ 
     type: "POST", 
     url: "selectbackend.php", 
     data: {"selectstatus": selectstatus 
     }, 
     }) 
     .done(function(data, textStatus, jqXHR){alert(textStatus);}) 
     .fail(function(jqXHR, textStatus, errorThrown){alert(jqXHR+"--"+textStatus+"--"+errorThrown);}); 
});//end change 
});//end ready 
</script> 

,但它不工作要麼是給任何錯誤,我懷疑是在Java腳本不以某種方式工作。

這裏是後端文件:

<?php 
$selectstatus = $_POST['selectstatus']; 
$cxn = mysqli_connect($host,$user,$password,$dbname); 
if (mysqli_connect_errno()) {echo "No connection" . mysqli_connect_error();} 

    $query = " UPDATE test 
      SET var = '$slectstatus' 
      WHERE id='1"; 
+0

貌似變量selectstatus只if語句範圍內指定,即你不能在外面訪問它,因爲它是defi在它內部。我會擺脫if語句,因爲它沒有任何意義,因爲該事件使用與if語句相同的選擇器進行註冊。 – Streamside

+0

如果刪除子句仍然無法正常工作,請在上面的代碼中編輯 –

+0

您的螢火蟲控制檯中有任何錯誤。 – Outlooker

回答

0
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
</head> 
<html> 
    <select id="status" name="status"> 
     <option value="">Select option:</option> 
     <option value="aproved">aproved</option> 
     <option value="canceled">canceled</option> 
    </select> 
</html> 

<script> 

$(document).ready(function(){ 
    $('#status').change(function(){ 

    //var selectstatus = $("select[name=status]").val(); 

    $.ajax({ 
     type: "POST", 
     url: "selectbackend.php", 
     data: {"selectstatus": $(this).val()}, 
    }) 
    .done(function(data, textStatus, jqXHR){alert(textStatus);}) 
    .fail(function(jqXHR, textStatus, errorThrown){alert(jqXHR+"--"+textStatus+"--          +errorThrown);}); 
});//end change 
});//end ready 
</script> 

然後:

<?php 
$selectstatus = addslashes($_POST['selectstatus']); 
$cxn = mysqli_connect($host,$user,$password,$dbname); 
if (mysqli_connect_errno()) {echo "No connection" . mysqli_connect_error();} 

$query = " UPDATE test 
     SET var = '$selectstatus' 
     WHERE id='1'"; 
0

試試這個:

<script> 
$(document).ready(function(e) { 
$('select[name=status]').change(function(){ 

     selectstatus = $("select[name=status]").val(); 

     $.ajax({ 
     type: "POST", 
     url: "selectbackend.php", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json",  
     data: JSON.stringify({"selectstatus": selectstatus}), 
     }) 
     .done(function(data, textStatus, jqXHR){alert(textStatus);}) 
     .fail(function(jqXHR, textStatus, errorThrown){alert(jqXHR+"--"+textStatus+"--"+errorThrown);}); 
});//end change 
});//end ready 
</script> 
相關問題