0

您好,我正在尝试制作一个<select>菜单,当您从中选择一些选项时,选择要使用 Ajax 在数据库中写入的选项,这是我到目前为止所完成的:

这是我的选择菜单:

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

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

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

2 回答 2

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>
于 2013-10-04T19:00:15.570 回答
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'";
于 2013-10-04T19:19:29.870 回答