Результаты проверки на стороне сервера отображаются в том же окне браузера

#javascript #php #jquery #html #ajax

#javascript #php #jquery #HTML #ajax

Вопрос:

Простая HTML-форма:

 <form action="test.php" method="post" name="my_form" id="my_form" >
    <input name="c_name" type="text" id="c_name"  maxlength="90"/>
 </form>
  

test.php со следующим кодом:

 <?php
    $name=$_POST['c_name'];
    if ((!isset($name)) || ($name==''))
    {
      echo 'Fill in the name';        
    }
    else
    {
      echo $name;
    }
?> 
  

Теперь я хочу, чтобы при отправке формы было сделано следующее:

1) Не оставлять текущее окно браузера как PHP для отображения соответствующего сообщения.Я хочу, чтобы окно формы оставалось там.

2) Мне не нужно просто простое ответное сообщение. Например, я хочу вместо «Заполнить имя» более графический способ взаимодействия, например, отображение скрытого div; другими словами, я хочу написать Jquery внутри PHP и заставить его выполняться. Возможно ли это и как?

Я знаю, что должен использовать AJAX, однако я не знаю, что именно делать! Не могли бы вы дать мне какой-нибудь код, чтобы реализовать две вышеуказанные вещи?

Комментарии:

1. Выполните проверку в форме, используя JavaScript и / или jQuery. Не отправляйте, пока не будут выполнены все проверки и сообщения об ошибках. Таким образом, серверу нужно будет только обрабатывать, а не делать причудливые вещи на стороне клиента.

2. Это хороший совет, но также используйте регулярные выражения и изучайте основы. Это придет к вам быстрее, чем вы ожидаете.

Ответ №1:

Я считаю, что если вы новичок во всем этом, как вам кажется, вам лучше всего использовать jQuery. Пример ajax можно найти здесь: http://api.jquery.com/jquery.ajax /

Код в этом случае имеет объем q бит. Потому что вы не только захотите проверить, действительно ли он пустой, но вы также хотите предварительно сопоставить его. Это означает, что вы хотите убедиться, что то, что отправляют ваши пользователи, вам действительно нужно (а не ломать, взламывать или внедрять ваш сервер, что важно).

Поэтому, видя это, я бы рекомендовал прочитать учебное пособие, что-то вроде этого (быстрый поиск в Google): http://code.tutsplus.com/tutorials/5-ways-to-make-ajax-calls-with-jquery—net-6289

И ознакомьтесь с некоторыми основами, прежде чем переходить к следующим шагам.

Ответ №2:

Чтобы получить желаемый эффект. Мне нравится использовать плагин jQuery Form, он упрощает создание AJAX-формы из любой существующей формы. Затем просто повторите свои результаты в файле .php, который вы отправляете (подсказка: вы также можете повторить div со стилем.) Приведенный ниже пример, предполагающий, что на вашей странице включен плагин jQuery Form, отправит форму с помощью AJAX и вернет повторные результаты в div с id=status .

 $(document).ready(function(){
    var status = $('#status');
    $('#my_form').ajaxForm({
        beforeSend: function() {
            status.empty();
        },
        complete: function(xhr) {
            status.html(xhr.responseText);
        }
    });
});