表格不会通过ajax提交

时间:2015-04-09 12:31:17

标签: javascript php jquery html ajax

我在div中有一个表单,我希望通过另一个页面提交该表单,该页面将运行查询,然后再次返回到div中更大页面内的所有页面。

我已将以下javascript放在页面顶部:

<script name='addactivity'>
    function submitForm() {
        $.ajax({type:'POST', url: 'activity_new.php', data:$('#newactivity').serialize(), success: function(response) {
            $('#newactivity').find('.activities').html(response);
        }});

        return false;
    }
    </script>

并将表单放在div中,如下所示:

<form id='newactivity' method="post">
        <b>Activity Number:</b><input type=text name='activitynumber' class='textborder'>   
        <b>Title:</b><input type=text name='activitytitle' class='textborder'>
        <b>Time (mins):</b> <input type=text name='activitytime' class='textborder'>
        <b>Leaders:</b> <input type=text name='leaders' class='textborder'><br>
        <b>Description:</b><textarea name='activitydescription' class='textareaborder'></textarea>
        <input type='submit' value='Submit' id='submit'></form>
<div id="activities"></div>

提交按钮似乎没有做任何事情。它应该将值发布到activity_new.php,它看起来像:

<?php
session_start();
$input2=$_SESSION[ 'unitid' ];

        $meetingid=$_POST['meetingid'];
        $activitynumber=$_POST['activitynumber'];
        $activitytitle=$_POST['activitytitle'];
        $activitytime=$_POST['activitytime'];
        $leaders=$_POST['leaders'];
        $activitydescription=$_POST['activitydescription'];

include 'connect_db.php'; 

$q1c="INSERT into activities (meetingid, unitid, activitynumber, title, description, time, leaders) VALUES ('$meetingid', '$input2', '$activitytitle', '$activitydescription', '$activitytime', '$leaders')";
$r1c = mysqli_query($dbc,$q1c); 

echo $meetingid;
echo $activitynumber;
echo $activitytitle;

//header("location:editmeeting.php?id=$input2");

?>

我目前在主页面上有包含div的javascript,但也在页面顶部使用表单进行了尝试。我也尝试使用onsubmit = "return submitForm();"这两个组合作为{{ 1}}按钮本身。

2 个答案:

答案 0 :(得分:2)

根据您的代码,当您单击按钮时,它不会触发onsubmit()事件。

如果您更改按钮类型以进行提交,则会将return false添加到您的功能

<input type='submit' value='Submit'>

或使用以下代码。您可以使用按钮点击事件使用ajax

通过jquery提交表单

HTML

<input type='button' value='Submit' id="submit">

Jquery的

    $(document).ready(function(){
   $(document).on('click','#submit',function(){

     $.ajax({type:'POST', url: 'activity_new.php', data:$('#newactivity').serialize(), success: function(response) {
        $('#newactivity').find('.activities').html(response);
    }}); 

  });
  }); 

注意:从成功函数中的下面的代码。表单中没有名为'.activities'的元素。确保使用正确的选择器属性。

 $('#newactivity').find('.activities').html(response);

答案 1 :(得分:0)

只需更改输入类型:

<input type='submit' value='Submit'>
             ^^^^^