Я построил базовую форму с проверкой ajax и переадресацией страницы с помощью PHP и jQuery. Это работало нормально несколько дней назад. Я вернулся к нему, и ajax, похоже, перестает работать. В настоящий момент ajax просто проверяет тест var и возвращает данные обратно. Это действительно раздражает меня, поскольку он работает отлично изначально! Кажется странным, поскольку я не вижу ничего очевидного, надеясь, что некоторые свежие глаза могут помочь.JQuery Ajax - Код действительно работал, теперь нет?
Ajax прекратил отправлять данные, поэтому я нажимаю кнопку «Отправить», и ajax ничего не отправляет, поэтому мой if() ничего не делает! Я получаю значения формы отлично. Пробовал с основными аяксом и предупреждениями, что-то странное, похоже, происходит.
Надеется, что вы можете помочь
<form id="registerform">
<ul id="form">
<li>
<label for="email">Email:</label><span class="fieldbox"><input type="text" id="email"/></span>
</li>
<li>
<label for="confirmemail">Confirm Email:</label><span class="fieldbox"><input type="text" id="confirmemail"/></span>
</li>
<li>
<label for="password">Password:</label> <span class="fieldbox"> <input type="password" id="password"/></span>
</li>
<li>
<label for="confirmpassword">Confirm Password:</label> <span class="fieldbox"> <input type="confirmpassword" id="confirmpassword"/></span>
</li>
<input type="submit" id="register" value="Sign me up!"/>
</ul>
</form>
<div id="errorbox"></div>
JQuery:
$(document).ready(function(){
$("#register").click(function(){
var formvalues = [$("#email").val(), $("#confirmemail").val(), $("#password").val(), $("#confirmpassword").val() ];
var checklength = formvalues[2].length;
if(formvalues[0] == "" || formvalues[1] == ""){
$('#errorbox').fadeIn('slow');
$("#errorbox").html('<p class="errormsg">Please complete email fields.</p><div class="errormsgshodow"></div>');
$("#main").shake(3, 5, 600);
return false;//stop click function
}
if(formvalues[2] == "" || formvalues[3] == ""){
$('#errorbox').fadeIn('slow');
$("#errorbox").html('<p class="errormsg">Please complete password fields.</p><div class="errormsgshodow"></div>');
$("#main").shake(3, 5, 600);
return false;//stop click function
}
if(formvalues[0] != formvalues[1]){
$('#errorbox').fadeIn('slow');
$("#errorbox").html('<p class="errormsg">Password field do not match</p><div class="errormsgshodow"></div>');
$("#main").shake(3, 5, 600);
return false;//stop click function
}
if(formvalues[2] != formvalues[3]){
$('#errorbox').fadeIn('slow');
$("#errorbox").html('<p class="errormsg">Password field do not match</p><div class="errormsgshodow"></div>');
$("#main").shake(3, 5, 600);
return false;//stop click function
}
if(checklength < 6 || checklength > 6){
$('#errorbox').fadeIn('slow');
$("#errorbox").html('<p class="errormsg">Password is too long.</p><div class="errormsgshodow"></div>');
$("#main").shake(3, 5, 600);
return false;//stop click function
}
var datastring = 'email=' + formvalues[1] + '&password=' + formvalues[3];
$.ajax({
type: "POST",
url: "signup.php",
data: datastring,
success: function(data){
//see redirect script for stuff here
if(data != "error"){
window.location="http://localhost/creativetree/projectboard.php?id="+data;
}else{
$('#errorbox').fadeIn('slow');
$("#errorbox").html('<p class="errormsg">User account already exists with that email.</p><div class="errormsgshodow"></div>');;
}
}
});
});
});//jquery end
//shake functions by Amit Dhamu
jQuery.fn.shake = function(intShakes /*Amount of shakes*/, intDistance /*Shake distance*/, intDuration /*Time duration*/) {
this.each(function() {
$(this).css({position:"relative"});
for (var x=1; x<=intShakes; x++) {
$(this).animate({left:(intDistance*-1)}, (((intDuration/intShakes)/4)))
.animate({left:intDistance}, ((intDuration/intShakes)/2))
.animate({left:0}, (((intDuration/intShakes)/4)));
}
});
return this;
};
И минимален PHP для результата:
<?php
if(isset($_POST['email'])){
$email = $_POST['email'];
$password = $_POST['password'];
if($email == "test"){
echo $email;
}else{
echo 'error';
}
}
?>
Упс! вы забыли упомянуть, что не работает ..., что точно не работает? – gdoron
Попробуйте использовать «Charles Proxy», чтобы сузить его. «Чарльз» - отличное приложение, которое помогает определить, какие данные отправляются туда и обратно между клиентом и сервером. По крайней мере, таким образом вы можете определить, действительно ли отправляемые данные действительны, если его отправка вообще. и если он отправляется, определите, не вызывается ли сервер. – Sitnam
Извините ajax только что прекратил работу, я получаю значения формы, но когда я отправляю их с помощью ajax, мой if не отвечает, как будто он перестает работать. Пробовал базовый аякс с предупреждениями, и ничего, похоже, не много. – ChrisSherwood