Проверка JQuery не реагирует на успех

0

Я пытаюсь сделать проверку jquery на форме, все работает над проверкой входных данных, но когда все правильно, оно не "идет дальше" и ничего не возвращает.

function validateFields() {

    var fname = $("input#fname").val();
    if (fname == "") {
        $( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
        $( "#Fejl" ).html("<p class=\"c\">First name missing!</p>");
        $( "#Fejl" ).slideDown( "slow" );
        return false;
    }

    var lname = $("input#lname").val();
    if (lname == "") {
        $( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
        $( "#Fejl" ).html("<p class=\"c\">Last name missing!</p>");
        $( "#Fejl" ).slideDown( "slow" );
        return false;
    }

    var femail = $("input#femail").val();
    if (femail == "") {
        $( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
        $( "#Fejl" ).html("<p class=\"c\">Email missing!</p>");
        $( "#Fejl" ).slideDown( "slow" );
        return false;
    }

    var lemail = $("input#lemail").val();
    if (lemail == "") {
        $( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});

        $( "#Fejl" ).html("<p class=\"c\">Email missing!</p>");
        $( "#Fejl" ).slideDown( "slow" );
        return false;
    }

    var cemail = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
    if (femail !== "") {
        $( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
        if(!cemail.test(femail)){
            $( "#Fejl" ).html("<p class=\"c\">Your email is invalid.</p>");
            $( "#Fejl" ).slideDown( "slow" );
            return false;
        }
    }

    var fpassword = $("input#fpassword").val();
    if (fpassword == "") {
        $( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
        $( "#Fejl" ).html("<p class=\"c\">Password missing!</p>");
        $( "#Fejl" ).slideDown( "slow" );
        return false;
    }

    var lpassword = $("input#lpassword").val();
    if (lpassword == "") {
        $( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
        $( "#Fejl" ).html("<p class=\"c\">Confirm password!</p>");
        $( "#Fejl" ).slideDown( "slow" );
        return false;
    }

     var datastring = 'fname='+ fname +'&lname='+ lname +'&email='+ femail +'&password='+ fpassword;

    $.ajax({
        type: "POST",
        url: "opret.php",
        data: dataString,
        success: function() {
            if(responseText == 1) {
                $( "#Fejl" ).html("<p class=\"c\">virker</p>");
            } else { // else blank response
                $( "#Fejl" ).html("<p class=\"c\">virker2</p>");
            }
        }
    });
    return false;
};
    $('form#opret').on('submit',function(e) {
    e.preventDefault();
    var success=validateFields();
});

И я не знаю, что нужно изменить, я много пробовал, и мой опыт останавливается, я понятия не имею, что это такое.

я бы хотел, чтобы кто-нибудь любезно объяснил мне, что такое ошибка, так что я узнаю ее :-) php code:

1<?php

include("config.php");

$fname=$_POST['fname'];
$lname=$_POST['lname'];
$email=$_POST['femail'];
$password=$_POST['fpassword'];

$memails = mysql_result(mysql_query("SELECT COUNT(*) FROM Users WHERE email = '$email'"),0); //check for email exist

if($memails < 1){
    echo "1";
} else {
    echo "2";
}

?>

Теги:
forms

1 ответ

0
Лучший ответ

Вы пытаетесь отправить свои аргументы в виде каких-то данных. Вам нужно либо отправить строку запроса так...

$.ajax({
    type: "POST",
    url: 'opret.php' + '?' + dataString,
    success: function(responseText) {
        if(responseText == "1") {
            $( "#Fejl" ).html("<p class=\"c\">virker</p>");
        } else { // else blank response
            $( "#Fejl" ).html("<p class=\"c\">virker2</p>");
        }
    }
});

... и пусть ваш PHP и итерации через ваш $ _POST, чтобы получить переменные, или отправить ваши данные как JSON, а затем декодировать его на объект в вашем PHP-скрипте, например...

var data = {
    'fname': fname,
    'lname': lname, 
    'email': femail,
    'password': fpassword
};

$.ajax({
    type: "POST",
    dataType: 'json',
    data: data,       
    url: "opret.php",
    success: function(responseText) {
        if(responseText == "1") {
            $( "#Fejl" ).html("<p class=\"c\">virker</p>");
        } else { // else blank response
            $( "#Fejl" ).html("<p class=\"c\">virker2</p>");
        }
    }
});

EDIT: Исправлено добавление строки запроса.

EDIT 2: Обновлен для обработки фактических возвратов PHP.

  • 0
    Да, не то, что я сделал? У меня только что была строка данных? :) Но я попробовал тот код, который вы выложили, но, похоже, не дал мне ни одного из этих результатов, который мог бы сказать "virker" или "virker2"
  • 0
    @ user3259244, нет, ваша строка данных была отформатирована как строка запроса, и вы пытались передать ее как серию данных для сериализации. Вам нужно добавить данные в строку запроса к вашему URL или отправить ее в виде JSON, явно указав, что вы отправляете. Кроме того, упс, я забыл ? обозначает строку запроса и исправит мой ответ. Попробуйте еще раз и посмотрите, что вы получите обратно.
Показать ещё 10 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню