单击“提交”按钮后会重新加载页面

时间:2018-05-04 17:46:48

标签: javascript php jquery html ajax

$(document).ready(function() {
  $("submit").click(function(event) {
    event.preventDefault();
  });
});

function norefresh() {
  return false;
}
<form method="post" action="<?php echo htmlspecialchars($_SERVER[" PHP_SELF "]);?>">
  <div class="form-group">
    <div class="row">
      <div class="col-xs-6 col-md-6 form-group">
        <label for="lname1">NAME OF THE LANDLORD</label>
        <input type="text" class="form-control" id="lname" name="lname"></div>
      <div class="col-xs-6 col-md-6 form-group">
        <label for="lpan1">PAN OF LANDLORD</label>
        <input type="text" class="form-control" id="lpan" name="lpan">
      </div>
    </div>
  </div>
  <div class="form-group">
    <div class="row">
      <div class="col-xs-6 col-md-6 form-group">
        <label for="ladd1">ADDRESS OF LANDLORD</label>
        <input type="text" class="form-control" id="ladd" name="ladd">
      </div>
      <div class="col-xs-6 col-md-6 form-group">
        <label for="lacc1">ACCOMODATION ADDRESS</label>
        <input type="text" class="form-control" id="lacc" name="lacc">
      </div>
    </div>
  </div>

  <input type="submit" class="btn btn-primary pull-right" name="submit" value="Add New" onClick="getintotab();resetform();return false;" />
  <br> <br>
</form>
</div>
<?php
	if(isset($_POST['submit'])){
		$sql1 = $db->query("INSERT INTO Landlord(name, landlord_pan, landlord_address, acc_address) VALUES ('".$_POST["lname"]."','".$_POST["lpan"]."','".$_POST["ladd"]."','".$_POST["lacc"]."')");
	
		if($sql1 == TRUE){
			echo "";
		} 
		else{
			echo "Error: " . $sql1 . "<br>" . mysqli_error($db);
		}
	}
?>

单击提交按钮的php脚本将表单数据发送到mysql数据库,getintotab()函数将表单值存储在表resetform()中的同一页面上重置表单 但是点击提交按钮后页面会重新加载 我已经尝试了以下内容:

  1. norefresh()
  2. preventdefault()
  3. 将输入类型设为按钮而不是提交
  4. 仍然没有运气

4 个答案:

答案 0 :(得分:1)

您需要使用event.preventDefault(),但您的选择器“submit”将不匹配任何内容。

在提交按钮中添加标识符:

<input type="submit" id="submit" ... >

然后将其用作选择器:

  $("#submit").click(function(event) {
    event.preventDefault();
    # You should add the other function calls here 
    # instead of having function calls in two separate places.
  });

或者在表单中添加标识符:

<form id="form" ... >

然后为提交操作添加一个监听器(我推荐的方式):

  $("#form").submit(function(event) {
    event.preventDefault();
    # You should add the other function calls here 
    # instead of having function calls in two separate places.
  });

答案 1 :(得分:0)

您正在使用http请求(表单提交)命中服务器。这将导致页面重新加载。

您应该通过XmlHttpRequest,即AJAX调用来命中服务器,以分别从/向服务器获取/发布数据。这只刷新页面的一部分,不会重新加载完整的页面。希望这会有所帮助。

答案 2 :(得分:0)

我认为你可以删除onClick="getintotab();resetform();return false;"并使用jquery选择器中的所有js东西,它将适合你。

答案 3 :(得分:0)

你应该使用这个技巧:

<input type="submit" class="btn btn-primary pull-right" name="submit" value="Add New" />

<input type="button" class="btn btn-primary pull-right" name="submit" value="Add New" />

希望这有帮助。