0

我正在尝试使用 AJAX 将数据发布到我的表中,我有以下表格,

<form>
    Total <input type="text" id="total" name="total" /><br />
    Bill name<input type="text" id="bill-name" name="bill-name" /><br />
    bill descriptiion <input type="text" id="bill-description" name="bill-description" /><br />
    bill colour<input type="text" id="bill-colour" name="bill-colour" />
    <input type="button" value="submit" onClick="insertBill();" />
</form>    

我的 AJAX 代码是...

<script type="text/javascript">
function insertBill()
{
    var bill = $("#bill").val();
    $.post('insert_bill.php', {total: total, bill-name: bill-name, bill-description: bill-description, bill-colour: bill-colour}, function(data) 
    {
        $("#bills").html(data); 
    });
}
</script>

但是由于某种原因,我的价值观没有被传递。我是 AJAX 的新手,所以我一直在学习教程,所以请原谅我的天真!我该如何进行这项工作?

4

5 回答 5

1

对于这个以及许多其他 PHP、jQuery ajax 问题,我强烈建议您序列化试试这个:

<div id="bills"></div>
<script type="text/javascript">
function insertBill()
{
    $.post('insert_bill.php', $('form').serialize(), 
        function(data) {
        $("#bills").html(data); 
    });
}
于 2012-04-12T20:58:21.490 回答
0

您的 javascript 变量尚未定义。您的 javascript 函数不知道该表单。

尝试这样的事情:

$.post('insert_bill.php', {total: $('#total').val(), bill-name: $('#bill-name').val()...

或者您可以预先设置变量

<script type="text/javascript">
function insertBill()
{
  var total = $('#total').val();

我不确定这是在做什么:

var bill = $("#bill").val();

我没有看到任何 id="bill"

于 2012-04-12T20:54:34.440 回答
0

您正在传递甚至没有定义的变量。您需要像之前那样定义所有的 post 变量var bill = $("#bill").val();,然后传递它们。

我建议你使用这个为你做所有事情的 jQuery 插件。我使用它,它工作正常。

于 2012-04-12T20:56:47.520 回答
0

将您的form标签更改为此(或类似的东西)

<form id="bill" onsubmit="return insertBill();">

在你的函数中,这样做:

<script type="text/javascript">
  function insertBill() {
    var bill = $("#bill").val();
    $.post('insert_bill.php', {total: total, bill-name: bill-name, bill-description: bill-description, bill-colour: bill-colour}, function(data) 
      {
        $("#bills").html(data); 
      } );
    return true;     // So that form may proceed.
  }
</script>
于 2012-04-12T20:56:51.880 回答
0

忽略缺失的值bill-name不是有效的标识符,如果你真的想使用bill-name你应该用引号将它括起来并使用 jQuerys 检索值val()

$.post('insert_bill.php',{ 'bill-name' : $('#bill-name').val() } ....
于 2012-04-12T20:59:40.780 回答