在更改选择菜单上将结果添加到数据库

时间:2013-10-04 18:44:17

标签: php jquery ajax

您好我正在尝试创建一个<select>菜单,当您选择使用Ajax在数据库中写入所选选项的某些选项时,到目前为止我已经完成了以下操作:

这是我的选择菜单:

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

这是我的java脚本,它应该选择更改并将其发送到后端php文件,其中数据库连接和UPDATE查询,select方法是工作的,它不会在选择完成后立即更新。目标是一旦用户选择结果进入数据库,需要按下按钮或做其他事情。

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

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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'";