我有一个表格我想提交表格与post方法有刷新页面,但这里的帖子不起作用

时间:2014-06-22 10:13:35

标签: php jquery

<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;

}

?>

1 个答案:

答案 0 :(得分:1)

我不知道为什么人们会贬低这个问题,但你的问题是你的事件倾听者。您正在检查表单是否已被单击,而不是表单已提交。如果要使用click事件侦听器,则应将其绑定到提交按钮。但是这并没有被建议,因为有时候点击提交按钮并且用户按下输入而不是触发表单提交。所以坚持使用表单上的submit事件监听器。

http://jsfiddle.net/gaQK3/

$(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处理。在某个时刻,请求将失败,您将要提醒用户再次尝试。