2016-11-15 292 views
1

文件名內的寄存器功能使用Ajax字段signup.php捕捉值並將它們發送到register.php然後顯示舉杯答覆*/AJAX請求不起作用

// js code inside signup.php 
 
<script type="text/javascript"> 
 
    function register(){ 
 
    var name=$('#form2').val(); 
 
    var email=$('#form3').val(); 
 
    var password=$('#form4').val(); 
 
    var question=$('#question').val(); 
 
    var repsec=$('#form5').val(); 
 
    if((email!="")&&(password!="")&&(name!="")&&(repsec!="")&&(quest!="")) { 
 
    
 
$.ajax({ 
 
    var data = $("#reg").serialize(); 
 
    url:'register.php', 
 
    type:'POST', 
 
    data:data, 
 
    success: function(data){ 
 
    if(data=='success'){ 
 
    toastr.clear(); toastr.success('user: '+name+' registred'); } else {toastr.clear(); toastr.error(email+' already exists') } } }); } }; </script>
<!-- registration form--> 
 
<form id="reg" method="post"> 
 
    <div class="md-form" style="top: 25px;"> 
 
    
 
    <i class="fa fa-user prefix" style="top: 15px;"></i> 
 
<input type="text" name="name" id="form2" class="form-control"> 
 
<label for="form2">Your name</label> </div> <div class="md-form" style="top: 25px;"> 
 
    
 
<i class="fa fa-envelope prefix" style="top: 14px;right: 500px;"></i> 
 
<input type="email" name="email" id="form3" class="form-control" style="margin-top: 30px;" required> <label for="form3">Your email</label> </div> 
 
    
 
<div class="md-form" style="top: 28px;"> 
 
<i class="fa fa-lock prefix" style="top: 14px;"></i> 
 
    
 
<input type="password" name="password" id="form4" class="form-control" required> 
 
<label for="form4">Your password</label> </div> <i class="fa fa-question-circle" style="top: 14px;margin-top: 40px;font-size:1.6rem;"></i> 
 
    
 
    <select name="quest" id="question" style="margin-top: -25;margin-left: 38px;width: 497px;"> 
 
<option>What is the name of my best childhood friend?</option> <option>What is the best place I have visited?</option> <option>What is the best gift I received?</option> 
 
    </select> 
 

 
<div class="md-form" style="top: 25px;left:40;"> 
 
<input type="password" name="repsec" id="form5" class="form-control" style="font-size: 1.4rem;font-weight: bold;color: #000;width: 480px;" required> 
 

 
<label for="form5">Answer of secret question </label> </div> 
 
<div class="text-xs-center"> 
 
    
 
<button class="btn btn-indigo" onclick="register()" style="margin-top: 25px;" type="submit">Sign up</button> </div></form>

提交表單頁面時的問題在沒有ajax回覆的情況下重新加載,並且不在數據庫中插入新用戶。我包括所有引導文件(css & js)和jquery庫正確,我甚至編碼類似於signup.php的登錄表單,其中ajax請求正確工作與烤麪包回覆 我試圖添加preventDefault,更改提交類型爲input type=button,然後驗證PHP代碼,數據庫參數,但我從來沒有連續3周

//register.php代碼

Register

回答

0

而不是使用onclick="register()",請嘗試使用JavaScript來提交表單,而不是尋找解決方案。

document.getElementById("reg").onsubmit = function() {register()}; 

並從提交按鈕中刪除onclick="register()"事件。

我通常用jquery做這件事,但是如果你不使用它,我認爲上面的工作將會奏效。我沒有測試過它。

下面是使用jQuery的方式:

$(function() { 
// register user 
    $("button.btn-indigo").click(function(){ 
    register(); 
}); 
+0

我這樣做,但在提交的頁面重新加載仍然沒有答覆麪包,而無需添加新的用戶 – barsawi13

+0

@ barsawi13這應該工作..嗯。 也許你的錯誤是在別的地方,對不起,我沒有用過烤麪包。 這基本上是我建議的:http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_onclick_dom – Bolli

+0

如果你添加onsubmit =「return false」到你的表單標籤會發生什麼? – Bolli