2016-06-21 64 views
1

这是我的代码。 HTML如何在同一页面显示结果?

<html> 
<head></head> 
</body> 
<form id="myform" action="formdata.php" method="post"> 
    username:<input type="text" name="username" id="name"><br> 
    password:<input type="password" name="password" id="pass"><br> 
    firstname:<input type="text" name="firstname" id="fname"><br> 
    lastname:<input type="text" name="lastname" id="lname"><br> 
    <input type="submit" id="submit" value="register"> 
</form> 
<div id="status_text"></div> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script> 
$("#submit").click(function(){ 
    var username = $('#name').val(); 
    var password = $('#pass').val(); 
    var firstname = $('#fname').val(); 
    var lastnamee = $('#lname').val(); 
    var postData = '&username='+username+'&password='+password+'&firstname='+firstname+'&lastname='+lastname; 
    var status_text = $('#status_text'); 
    //alert(postData); 
    //var mydata = {'username':name,'password':pass,'firstname':fname,'lastname':lname}; 
/*$.post($('#myform').attr('action'), 
    $('#myform:input').serializeArray(), 
    function(info){ 
     $('status_text').html(info) 
    });*/ 
$.ajax({ 
    url:"action", 
    type:"post", 
    success:function(info) 
    { 
     status_text.html(info); 
    } 
}); 
}); 
</script> 
</body> 
</html> 

,它是数据库

<?php 
$servername = 'localhost'; 
$username = 'root'; 
$password = ''; 
$conn = new mysqli($servername, $username, $password); 
$name = $_POST['username']; 
$password = $_POST['password']; 
$firstname = $_POST['firstname']; 
$lastname = $_POST['lastname']; 
$sql = "INSERT INTO karthik.person(name,password,firstname,lastname)VALUES('$name','$password','$firstname','$lastname')"; 
if($conn->query($sql) === TRUE){ 
    echo("record added success"); 
}else{ 
    echo("failed".$conn->error); 
} 
$conn->close(); 
?> 

我的PHP代码,当过我运行这段代码它进入下一个页面,像“记录成功添加”,而不是说我想显示结果在同一页面显示结果的代码。我几乎尝试了所有的方式,但我无法得到我预期的结果。

+2

'url:“action”'? – Phiter

+0

url:“action”是'formdata.php'@PhiterFernandes – pkarthicbz

回答

1

你需要告诉浏览器不要提交表单:

$("#submit").click(function(e) { 
    e.preventDefault(); // Prevents the default behaviour for the submit-action 
    //... the rest of your code 

当你得到这个工作,你应该开始从@jeroen's list固定的东西。

+0

这只是开始:-) – jeroen

+1

@jeroen - 他确实说他确实得到了正确的结果,但只是在另一个页面上,所以我猜测代码SO的问题已被修改。但是,是的,他的代码存在多个问题。我只是回答实际的问题。 :) –

+0

我知道,但有这么多的错误,这里很难说从哪里开始... – jeroen

1

您这里有一些问题:

  • 你是不是防止默认提交事件,并引起表单提交“正常”的可能。
  • 您不会使用您的ajax请求发送任何数据,因此您在服务器端永远不会有任何$_POST变量。
  • 你有一个SQL注入问题。您应该使用准备好的语句并绑定值。
  • 您不会将您的ajax请求发送到正确的url。
  • 您正在使用纯文本密码。你应该总是使用哈希密码。
相关问题