目前,该表显示了每个mysql行的不同按钮,但只有第一个mysql行按钮才能正常工作。当它正常工作时,提交按钮将位置行保存为javascript AJAX帖子的值。当它无法正常工作时,提交按钮会刷新页面。
这是html和mysql表单:
while($row = mysqli_fetch_array($result)) {
echo '<form class="form-signin" action="" method="POST" id="register-form"><tr>';
echo "<td><b>" . $row['product'] . "</b><br>";
echo "<td><b>" . $row['location'] . "</b><br>";
echo "" . $row['notes'] . "";
echo '
<input type="hidden" name="user_name" value="'. $row['product'].'" />
<input type="hidden" name="location" value="'. $row['location'].'" />
<input type="text" class="form-control" placeholder="Table Number" name="user_email" id="user_email" />
<input type="text" class="form-control" placeholder="Quantity" name="password" id="user_email" />
<button type="submit" class="btn btn-default" value="Submit form" name="btn-save" id="btn-submit">
<span class="glyphicon glyphicon-log-in"></span> '. $row['location'] .'
</button></td>';
echo "</tr></form>";
}
这是发布的“注册表格”的javascript:
{
var data = $("#register-form").serialize();
$.ajax({
type: 'POST',
url: 'register.php',
data: data,
beforeSend: function() {
$("#error").fadeOut();
$("#btn-submit").html('<span class="glyphicon glyphicon-transfer"></span> sending ...');
},
success: function(data) {}
})
}
基本上,如果单击提交按钮,则需要将其保存为单击的相应行,而不是采取不同的操作。
$('document').ready(function()
{
/* validation */
$("#register-form").validate({
rules:
{
},
messages:
{
user_name: "Enter a Valid Username",
password:{
required: "Provide a Password",
minlength: "Password Needs To Be Minimum of 8 Characters"
},
user_email: "Enter a Valid Email",
cpassword:{
required: "Retype Your Password",
equalTo: "Password Mismatch! Retype"
}
},
submitHandler: submitForm
});
/* validation */
/* form submit */
function submitForm()
{
var data = $("#register-form").serialize();
$.ajax({
type : 'POST',
url : 'register.php',
data : data,
beforeSend: function()
{
$("#error").fadeOut();
$("#btn-submit").html('<span class="glyphicon glyphicon-transfer"></span> sending ...');
},
success : function(data)
{
if(data==1){
$("#error").fadeIn(1000, function(){
$("#error").html('<div class="alert alert-danger"> <span class="glyphicon glyphicon-info-sign"></span> Sorry email already taken !</div>');
$("#btn-submit").html('<span class="glyphicon glyphicon-log-in"></span> Create Account');
});
}
else if(data=="registered")
{
$("#btn-submit").html('Ordered');
// setTimeout('$(".form-signin").fadeOut(500, function(){ $(".signin-form").load(""); }); ',5000);
}
else{
$("#error").fadeIn(1000, function(){
$("#error").html('<div class="alert alert-danger"><span class="glyphicon glyphicon-info-sign"></span> '+data+' !</div>');
$("#btn-submit").html('<span class="glyphicon glyphicon-log-in"></span> Create Account');
});
}
}
});
return false;
}
/* form submit */
});
答案 0 :(得分:0)
我很确定这只是因为你有所有具有相同id的按钮,我认为这意味着除了第一个无效之外。尝试将行ID添加到id =&#34; btn-submit&#34;的末尾。看看是否有效。
EDIT ::
javascript没有做任何事情,因为您可能正在使用以下内容启动点击处理程序:
$('#submit-btn')...
正确? (我无法在上面复制的内容中看到javascript的那一部分。)如果是这种情况,那么一小段代码就是
找到一个id = submit-btn的元素,然后在单击该元素时运行此代码。
您需要拥有的是:
而是$('.row-submit-btn')....
。这就是说找到一个带有row-submit-btn的css类的元素,然后在单击其中一个时运行这个代码。
我说使用CSS类而不是id的原因是因为id必须是唯一的或者html是无效的(因此这个问题就在这里!)但CSS类没有这个限制。这里的主要警告是你需要确保这个css类对于这个页面上的元素是唯一的(这意味着没有任何其他东西与row-submit-btn作为css类。)否则你将无意中副作用。