【发布时间】:2011-09-30 00:01:07
【问题描述】:
我有一个多表单应用程序,它通过 AJAX 收集一些信息,然后允许用户更新该信息并在继续处理表单时再次提交。
目标是消除多个页面来执行简单的记录更新。
我的 jQuery .post() 返回带有新值的“新”表单,但我的第二个表单不提交返回的值,即使“删除”返回 object.HTMLElement 或 undefined。
请帮忙,因为我是 jQuery 新手。
index.php
<form id="getCustomer">
<select>
<option value="1">John Doe</option>
<option value="2">Jane Doe</option>
</select>
</form>
<div id="customer_info">
<form id="updateCustomer">
<input type="text" name="firstName" value="" />
<input type="text" name="lastName" value="" />
<input type="submit" id="updateCustomer" value="Update" />
<input type="submit" id="deleteCustomer" value="Delete" />
</form>
</div>
<div id="info_status"></div>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
//AJAX selected customer
$('#getCustomer').change(function(){
var id = $(this).val();
$.post(
'inc/getCust.inc.php',
{id:id},
function(output){
$('#customer_info').html(output).show();
});
});
//Prevent default form actions
$('form').live('submit', function(){
return false;// On submit return false
});
//AJAX Update Customer
$('#updateCustomer').live('click', function(){
var fname = $('input[name=firstName]').val();
var lname = $('input[name=lastName]').val();
$.post(
'inc/updateCust.inc.php',
{ },
function(output){
$('#info_status').html(output).show();
});
});
//AJAX Delete Customer
$('#deleteCustomer').live('click', function(){
var fname = $('input[name=firstName]').val();
var lname = $('input[name=lastName]').val();
var deleteCust = confirm('Delete: ' + c_fname + ' ' + c_lname + '?');
if(deleteCust){
$.post(
'inc/deleteCust.inc.php',
{ id:id },
function(output){
$('#info_status').html(output).show();
}
);
}
});
</script>
getCust.inc.php
<?php getCust($_POST['id']);?>
<form id="updateCustomer">
<input type="text" name="firstName" value="<?php echo $CUST['fname'];?>" />
<input type="text" name="lastName" value="<?php echo $CUST['lname'];?>" />
<input type="submit" id="updateCustomer" value="Update" />
<input type="submit" id="deleteCustomer" value="Delete" />
</form>
【问题讨论】:
-
部分问题是您有一个名为
preCustData的函数,但您使用prepCustData()调用它(pre -> prep) -
另外,您使用
$CUST['fname']作为您的姓氏输入。也许你的意思是$CUST['lname']? -
对不起,我正在修复代码,但 getCust() 只是查询我的数据库以填充已知值......它工作正常......我正在打破我的 prepCustdata() 函数和下来...
-
所以,我已经用直接调用输入值替换了 prepCust(),现在我得到了 undefined。