2013-10-04 29 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> 
相关问题