如何根据下拉菜单选择使用数据库中的数据预填充我的表单?

时间:2015-02-07 02:56:49

标签: javascript php jquery mysql ajax

您好我一直试图找出如何根据下拉菜单中的选择从我的数据库中预填充数据。已经有几个星期不能解决它...非常感谢任何人的帮助。

我的表单有一个下拉选择菜单,可以从我的数据库中加载发票ID。我正在尝试根据所选的invoiceid的值预先填写表单。

在我的数据库中,“invoiceidcopy”列数据显示为我的下拉菜单中每个不同记录/行值的选择。

如果你在我的数据库表的图像中注意到你会注意到第一行/记录的invoiceidcopy字段是空白的...随后...在我的下拉菜单中......第一个选项是空白的。

最终我的代码只有在我从下拉菜单中选择空白选项而不能用于其他2个选项时才有效吗?

我的代码有什么问题,或者有人知道有不同的方法来实现这一点......谢谢你。

DataBase

FORM

<form action="#">

<select id="dropdown-select" name="dropdown-select">
<option value="">-- Select One --</option>
</select>

<button id="submit-id">Prefill Form</button>

<input id="txt1" name="txt1" type="text">
<input id="txt2" name="txt2" type="text">



<button id="submit-form" name="Submit-form" type="submit">Submit</button>


</form> 

SCRIPT

<script>
     $(function(){


        $('#submit-id').on('click', function(e){  


            var invoiceidcopy = $('#dropdown-select').val();
            e.preventDefault(); 

             $.ajax({
              url: "/tst/orders2.php",
              data: {
                'invoiceidcopy': invoiceidcopy
              }
            }).done(function(data) {

    data = JSON.parse(data);

$('#txt1').val(data.txt1);
$('#txt2').val(data.txt2);


});
        });
     });
</script>

/tst/orders2.php

<?php

// Create the connection to the database
$con=mysqli_connect("xxx","xxx","xxx","xxx");


// Check if the connection failed
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  die();
}

   if (isset($_GET['invoiceidcopy']))
{
    $invoiceidcopy= $_GET['invoiceidcopy'];

   $query = "SELECT txt1, txt2, q1
        FROM seguin_orders
  WHERE invoiceidcopy = '".$invoiceidcopy."'";

    $result = mysqli_query($con,$query);

    while ($row = mysqli_fetch_assoc($result)) 
        {
 echo json_encode($row);
 die(); 
    }
}
?>

1 个答案:

答案 0 :(得分:0)

就像minion所说,究竟是什么作为invoiceidcopy发送?从我看到的选择最后一个应该发送“这是一个测试2759f633-d6cb-4b3e-b4dc-3a4d0b54367 ......”。最好为这个领域提出另一个更短的密钥,如“ThisIsATest-2759f633”或“ThisIsATest-201502070057”。还要记住,您要清理输入以阻止SQL注入。即使它是下拉列表,也可以使用HTML来更改变量。