2010-02-18 128 views
1

我有一种形式:jQuery的AJAX发布错误的数据

<form id="deletesubmit" style="display:inline" > 
    <input style="width:50px" type="text" id="delcustomerid" name="delcustomerid" value="'.$row['customersid'].'"> 
    <button type="submit" class="table-button ui-state-default ui-corner-all" title="delete"><span class="ui-icon ui-icon-trash"></span></button> 
</form> 

形式获取客户ID并将其作为价值。它显示正确的客户对那一排一切都很好。然后当我通过ajax发布表单时,它发布了不同行的id。这是脚本:

$("form#deletesubmit").submit(function() { 

    var delcustomerid = $('#delcustomerid').attr('value'); 
    $.ajax({ 
     type: "POST", 
     url: "delete/process.php", 
     data: "delcustomerid=" + delcustomerid, 
     success: refreshTable 
    }); 
    return false; 
}); 
}); 

最后在这里张贴的形式PHP:

<?php include("../../config/config.php"); ?> 
<?php   
    $deleteid = htmlspecialchars(trim($_POST['delcustomerid'])); 
    mysql_send("DELETE FROM customers where id='$deleteid'"); 
?> 

我测试没有AJAX,它工作正常。一定有一些缺失。它没有发布正确的值。花了几天的时间试图解决它。

回答

4

使用attr('value')你拉原值?这可能不是你想要的东西;用.val()而是另外,你可以设置你的电话更容易一些:

$("form#deletesubmit").submit(function() { 
    var delcustomerid = $(this).find('#delcustomerid').val(); 
    $.post("delete/process.php", { delcustomerid: delcustomerid }, refreshTable); 
    return false; 
}); 

最后,确保你的PHP是输出。通过查看生成的HTML的源代码找到正确的id

另外,在PHP中:不要用htmlspecialchars来逃脱mysql。由于这应该是一个整数,你可以用int

$deleteid = (int) trim($_POST['delcustomerid']); 
mysql_send("DELETE FROM customers where id='$deleteid'"); 

请记住,一个数组(如果有人通过deleteid[]=此页)将评估为1。所以要么建立一个测试,要么确保你没有在表中留下id = 1。

+0

此外,我不相信“数据”格式化的方式将正确运行。 Doug格式化的方式是正确的。 {delcustomerid:delcustomerid} – Buggabill 2010-02-18 20:39:11

+0

感谢您的回复。添加了你的代码,问题仍然存在。添加警报(delcustomerid);之前在$ .ajax之前发布,错误的值在post之前设置。 – user272899 2010-02-18 20:39:50

+0

哈哈,我想我可能会知道发生了什么。尝试我的更新(只是JS,我没有更改PHP)。你在单个页面上使用多种形式吗? – 2010-02-18 20:51:36

0

到$阿贾克斯({像这样把一个警报插入到代码之前:

alert(delcustomerid); 

是后前值是非

+0

新增警示(delcustomerid);是的,发布前的价值是错误的。这是否意味着它是一个形式的问题? – user272899 2010-02-18 20:38:01

2

我只是想建议.val()方法。如果你还没有安装萤火虫。它将允许您准确地查看您发布到服务器的内容。

+2

提及Firebug +1。伟大的工具! – 2010-02-18 20:38:11