使用Jquery Ajax提交表单

时间:2017-08-23 11:27:25

标签: javascript php jquery html ajax

Fiddle和代码:



$("form.signupform").submit(function(e) {
  var data = $(this).serialize();
  var url = $(this).attr("action");
  var form = $(this); // Add this line
  $.post(url, data, function(data) { 
    try {
        data = JSON.parse(data);
		$(.result).html(data.result + " Watchlist");

    } catch (e) {
        console.log("json encoding failed");
        return false;
    }
});
  return false;
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p class="result"></p>
<form class="signupform" method="post" action="admin/signupinsert.php" onsubmit="this.onsubmit=function(){return false;}">

    <input type="text" name="firstname" />
	  <input type="submit" value="Sign Up"/>

</form>
&#13;
&#13;
&#13;

admin/signupinsert.php代码:

// Insert into DB code in PHP

$response = new \stdClass();
$response->result = "".$result."";
die(json_encode($response));

我正在尝试使用My Jquery Ajax Code提交此表单。 signupinsert.php文件将返回$ result变量中的值。我正在尝试在<p class="result"></p>

中打印它

但是,代码会将用户重定向到signupinsert.php页面。

出了什么问题?

2 个答案:

答案 0 :(得分:3)

您必须阻止提交表单的默认操作

JSON

另外,在你的php文件中返回正确的JSON.parse(data);并避免使用$response = new \stdClass(); $response->result = $result; header('Content-Type: application/json'); print json_encode($response);

解析javascript中的响应

php文件中的输出应该如下所示

success

并在data处理程序中将json参数作为普通$.post(url, data, function(data) { $(.result).html(data.result + " Watchlist"); } 对象处理

$response->result = "".$result."";

另外,只是好奇心,这应该做什么?

$('.result').html(data.result + " Watchlist");
  ^       ^

<强>更新
我刚才意识到为什么你有大部分问题:

android:text="@={loginVM.email}"

查看缺失的引号

答案 1 :(得分:0)

你因为行动而重定向:

action="admin/signupinsert.php"
var url = $(this).attr("action");

得到了我?