проверка формы для подписки на новостную рассылку с помощью всплывающего окна javascript - PullRequest
1 голос
/ 01 июля 2011

У меня есть следующий код на моей домашней странице, чтобы люди могли подписаться на рассылку новостей - адрес электронной почты вводится в таблицу newsletter_emails, и при нажатии кнопки GO появляется всплывающее окно с благодарностью.

 Email:  <input type="text" name="email" value="" id="email" />

        <input type="button" name="submit" onclick="submit_me()" value="GO" />

        <script type="text/javascript" charset="utf-8">

            function submit_me() {

                var email_value = $('#email').val();

                $.post("ajax_subscribe.php", { email: email_value }, function(response) {

                    if (response!='') {alert(response)};
                    alert('Thank You !');

                });

            }

Страница, на которой электронное письмо вставляется в базу данных (ajax_subcribe.php), выглядит следующим образом:

    <?php 
    $host = "xxxx";
    $user = "xxxx";
    $password = "xxxx";
    $database = "xxxx";
    $server = mysql_connect($host, $user, $password);
    $connection = mysql_select_db($database, $server);

    function sql_quote($value) {
        $value = str_replace('<?','',$value);
        $value = str_replace('script','',$value);   
        if (get_magic_quotes_gpc()) {
            $value = stripslashes($value);
        }
        if (!is_numeric($value)) {
            $value = "'" . mysql_real_escape_string($value) . "'";
        } else {
            if ((string)$value[0] == '0') {
                $value = "'" . mysql_real_escape_string($value) . "'";
        }}
        return $value;
    }
    $q = "INSERT INTO newsletter_emails (email,category) VALUES (".sql_quote($_POST['email']).",'1')";

    mysql_query($q);

?>

Хотя все это работает хорошо, на странице ajax_subscribe проверки нет - у меня естьследующий javascript на другой части моего сайта.

    <script type="text/javascript">
function validate(form_id,email) {

   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   var address = document.forms[form_id].elements[email].value;
   if(reg.test(address) == false) {

      alert('Invalid Email Address');
      return false;
   }
}
</script>

Я хотел бы включить такую ​​проверку в эту форму рассылки, чтобы при нажатии кнопки «Перейти» либо всплывающее окно «спасибо», либо «недействительный адрес электронной почты»"появляется всплывающее окно.По какой-то причине я не могу заставить его работать, даже если я вхожу в форму id = "form_id", и т. Д. И т. Д. Я в основном был в состоянии заставить работать на стороне или другой, но не оба вместе!

Любой совет высоко ценитсяспасибо JD

1 Ответ

0 голосов
/ 22 июля 2011

используйте что-то подобное в своей форме, чтобы вызвать код проверки JS

 <form method="GET" action="javascript:Validate(id)">

Для этого ваш JS всегда должен возвращать falseИспользуйте местоположение JS, чтобы перенаправить на успех.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...