<script type="text/javascript">
$(document).ready(function() {
$('#form1').bind('click', function (event) {
event.preventDefault();// using this page stop being refreshing
$.ajax({ type: 'POST',
url: 'car1.php',
data: $('#form1').serialize(),
success: function () {
// alert('form was submitted');
$("#allyears").hide();
$("#clickresult").show(); } }); });});
</script>
//year show
while($row_year1=mysql_fetch_array($result_year1))
{ ?>
<a href="#"><input type="submit" class="submitbutton1" tabindex="-1" name="submitbutton" value="<?php echo $row_year1['years']; ?>" id="show<?php echo $row_year1['years']; ?>" /></a>
<?php } ?>
//result
<?php
if(isset($_POST['submitbutton']))
{
$submitbutton=$_POST['submitbutton'];
echo $submitbutton;
}
?>
答案 0 :(得分:1)
我不知道为什么人们会贬低这个问题,但你的问题是你的事件倾听者。您正在检查表单是否已被单击,而不是表单已提交。如果要使用click
事件侦听器,则应将其绑定到提交按钮。但是这并没有被建议,因为有时候点击提交按钮并且用户按下输入而不是触发表单提交。所以坚持使用表单上的submit
事件监听器。
$(document).ready(function () {
$('#form1').bind('submit', function (event) {
event.preventDefault();
$.ajax({
type: 'POST',
url: 'car1.php',
data: $('#form1').serialize(),
success: function () {
alert('form was submitted');
}
});
});
});
还有一些关于你的其他代码的说明。
1)停止使用mysql_
功能。它们现已弃用。您应该使用PDO或MySQLi。我更喜欢PDO并相信它将来会有更好的支持。
2)使嵌套代码均匀。在您的Javascript中,您将最后一行上的所有标记全部关闭。这很难遵循。在我的代码示例中,您可以确切地看到发生了什么。
3)分离您的Javascript和PHP。我不知道你是否将它们结合起来用于问题的目的,但是不能将它们放在同一个文件中。
4)为Ajax请求添加错误处理以及success
处理。在某个时刻,请求将失败,您将要提醒用户再次尝试。