2016-03-26 4 views
-4

меня связаться с нами форму:Почему этот скрипт не загружается?

<form id="contactus" name="contactus" action="html_form_send1.php" method="post"> 
    <label for="name">Name:</label><br /> 
    <input type="text" id="name" name="name" maxlength="50" size="59" autofocus required/><br /><br /> 

    <label for="email">E-Mail Address:</label><br /> 
    <input type="email" id="email" name="email" maxlength="50" size="59" required/><br /><br /> 

    <label for="question">Question:</label><br /> 
    <textarea id="question" name="question" maxlength="1000" cols="50" rows="6" required></textarea><br /><br /> 

    <input class="c1_scButton" type="submit" id="submit" name="submit" value="Send" /> 
</form> 

Я хочу, чтобы это назвать мою почту PHP скрипт, используя этот AJAX код:

var msg = ""; 
name = $("#name").val(); 
email = $("#email").val(); 
question = $("#question").val(); 

//validation phase 

function isValidEmailAddress(emailAddress) { 
    var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([az]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i); 
    return pattern.test(emailAddress); 
}; 

function validate(e) { 
    if (name == "") { 
    msg = " valid name"; 
    } 

    if (!isValidEmailAddress(email)) { 
    msg = msg + " valid email address"; 
    } 

    if (question == "") { 
    msg = msg + " valid question or comment"; 
    } 
} 

// on submit, Validate then post to PHP mailer script 
$(function() { 
    $("#contactus").on('submit', function(e) { 
    e.preventDefault(); 
    validate(e); 
    if msg != "" { 
     e.preventDefault(); 
     $("#alert").html "Please enter a" + msg; 
    } else { 
     $.post('/html_form_send1.php', $(this).serialize(), function(data) { 
     $('#alert').css(color: "black") 
     $('#alert').html("<h2>Thank you for contacting us!</h2>") 
      .append("<p>We will be in touch soon.</p>"); 
     }).error(function() { 
     $('#alert').css(color: "red") 
     $('#alert').html("<h2>Something went wrong. Your Question was not submitted. /n</h2>").append("<p>Please try again later or email us at <a href=href=" 
      mailto: [email protected] allegroaffiliates.com ? Subject = Contact Us Form " target=" 
      _top ">[email protected]</a> </p>"); 
     }); 
    }; 
    }); 
}); 

Сценарий называется в нижней части страницы HTML за другим сценарий, но это не загрузка. Я подозреваю, что это связано с ошибкой кода, но я не могу найти ошибку. Может кто-нибудь дать мне идею, почему это не будет загружаться?

Замечание: Я знаю, что HTML5 проверяет подлинность скрипта, но у меня есть проверка на то, когда HTML5 недоступен.

Благодарим за помощь.

+2

Вы проверили консоль на наличие ошибок? –

+0

Существует несколько синтаксических ошибок, например. 'if msg! =" "{' или '$ (" # alert "). html« Пожалуйста, введите «+ msg;». Консоль скажет вам, в чем дело. – Marvin

+0

факт, что подсветка синтаксиса здесь испорчена, должна сказать вам, что с вашим кодом есть несколько вещей. используйте редактор спуска или IDE, и у вас не будет этих проблем. – Pevara

ответ

0

Несколько предложений по устранению неисправностей:

(1) При указании файла Аякса процессора, либо это $.post('html_form_send1.php' или это $.post('./html_form_send1.php', но это не $.post('/html_form_send1.php'

(2) Вместо того, чтобы использовать код быстрого доступа $.post() используйте полная форма метода, пока вы не очень хорошо на него:

var varvalue = $('#first_name').val(); 
var nutherval = $('#last_name').val(); 
$.ajax({ 
    type: 'post', 
    url: 'your_secondary_file.php', 
    data: 'varname=' +varvalue+ '&lname=' +nutherval, 
    success: function(d){ 
     if (d.length) alert(d); 
    } 
}); 

(3) Отключить процедура проверки, пока остальное работает, то не работает на том, что, когда вы знаете, все остальное работает правильно

(4) Измените файл процессора ajax html_form_send1.php, чтобы просто откликнуться на ответ, чтобы убедиться, что у вас работает AJAX. Затем, как только вы получите ответ, измените его, чтобы отобразить возвращаемую переменную. Затем вставьте его в конечный желаемый продукт. Но сначала, что-то мертвым просто, как это:

your_secondary_file.php:

<?php 
    $first_name = $_POST['varname']; 
    $last_name = $_POST['lname']; 
    echo 'Received: ' .$first_name .' '. $last_name; 
    die(); 

(5) Вместо того, чтобы использовать .serialize(), сначала просто захватить один или два значения поля вручную и получить, что работать первым. Обратите внимание, что .serialize() создает данные JSON, а более простой метод - прямые значения, как в примере кода в этом ответе. Сначала запустите его, затем оптимизируйте.

(6) Обратите внимание, что параметр dataType: в блоке кода AJAX для кода приходит назад со стороны PHP, а не для кода происходит к РНР стороне. Также обратите внимание, что значением по умолчанию является html, поэтому, если вы не отправляете обратно объект JSON, просто оставьте этот параметр.

(7) В моих примерах кода AJAX и PHP обратите внимание на корреляцию между именем переменной javascript, тем, как она ссылается в блоке кода AJAX, и как она получена на стороне PHP. Я был очень преднамеренным в именах, которые я выбрал, чтобы позволить вам следовать за спамом var name => var value.

Например, поле ввода с идентификатором first_name хранится в переменной под названием varvalue (немое имя, но преднамеренное).Эти данные передаются в блоке кода AJAX в качестве переменной с именем varname, и получил на стороне PHP, как $_POST['varname'], и, наконец, хранятся в PHP, как $first_name


Обзор some simple AJAX examples - скопировать их в систему и играть с их немного.

+0

Я попробую это, спасибо. –

+0

@DavidBrabson Добавил немного больше информации к моему ответу. Пожалуйста ознакомтесь. – gibberish

Смежные вопросы