Всплывающее окно

Discussion in 'PHP' started by Bmite, 3 Apr 2013.

  1. Bmite

    Bmite Робот-Казанова

    Joined:
    27 Feb 2007
    Messages:
    336
    Likes Received:
    80
    Reputations:
    0
    Всем здарова! Прошу нубской помощи в js.

    Есть форма с данными: тел, ФИО, мыло и тд.
    данные отправляется на send.php, в котором обрабатываются и отправляются на почту.
    файл send.php:
    Code:
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <?php if (isset($_POST['name'])) {$name = $_POST['name'];} if (isset($_POST['city'])) {$city = $_POST['city'];} if (isset($_POST['phone'])) {$phone = $_POST['phone'];} if (isset($_POST['message'])) {$message = $_POST['message'];} if (isset($_POST['email'])) {$email = $_POST['email'];} $address = "id.bmite@gmail.com"; $mes = "Имя: $name \nГород: $city \nТелефон: $phone \nE-mail: $email \nЗаявка: $message"; $send = mail ($address,$city,$mes,"Content-type:text/plain; charset = UTF-8\r\nFrom:$email"); if ($send == 'true') { echo "Ваша заявка принята, в течение 10 минут наш специалист свяжется с Вами."; } else { echo "Не удалось отправить заявку, заполните все поля правильно."; } ?>
    как в js или может как то еще проще, сделать, что бы не редиректило на site.ru/send.php , а после того как жму кнопку отправить, появлялось сообщение с моим текстом и при этом все работало(отправлялось на почту):D
     
  2. funny_kaplan

    funny_kaplan New Member

    Joined:
    28 Mar 2013
    Messages:
    43
    Likes Received:
    4
    Reputations:
    0
    Заюзав ajax - jquery.page2page.ru/index.php5/Ajax-запрос
     
  3. Bmite

    Bmite Робот-Казанова

    Joined:
    27 Feb 2007
    Messages:
    336
    Likes Received:
    80
    Reputations:
    0
    я гуглить тоже умею. можете что то конкретнее написать?
     
  4. funny_kaplan

    funny_kaplan New Member

    Joined:
    28 Mar 2013
    Messages:
    43
    Likes Received:
    4
    Reputations:
    0
    Там же есть пример, если конкретнее, то :
    Code:
    $.ajax({
      url: "some.php",
      success: function(data){
        alert( "Прибыли данные: " + data );
      }
    });
    
    Вместо alert( "Прибыли данные: " + data );
    можно данные, в переменной data, полученные от some.php вывести в div :
    Code:
    $.ajax({
      url: "some.php",
      success: function(data){
    document.getElementById('tot_samiy_div').innerHTML = data;
      }
    });
    
    Предварительно создав div, с нужным id
     
    #4 funny_kaplan, 3 Apr 2013
    Last edited: 3 Apr 2013
  5. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    913
    Likes Received:
    480
    Reputations:
    724
    Code:
    <input required  type="text" id="name" /><br />
    <input required  type="text" id="city" /><br />
    <input required  type="text" id="phone" /><br />
    <textarea required id="message" /></textarea>
    
    <button onclick="send();">OK</button>
    <script>
    	function send(){
    			var name = document.getElementById('name').value,
    			city = document.getElementById('city').value,
    			phone = document.getElementById('phone').value,
    			message = document.getElementById('message').value;
    			var params = 'name='+name+'&city='+city+'&phone='+phone+'&message='+message;
    			var xhr = new XMLHttpRequest();
    			xhr.open('POST','index.php', true);
    			
    			xhr.send(params);
    			xhr.onreadystatechange=function(){
    				if (xhr.readyState != 4) return
    				if (xhr.status === 200) {
    					alert(xhr.responseText);
    				}
    			}
    			
    			
    	}
    	
    </script>
    
    Отвыкайте использовать джопокуери при простейшей задаче.
     
    _________________________
    #5 VY_CMa, 3 Apr 2013
    Last edited: 3 Apr 2013
  6. Bmite

    Bmite Робот-Казанова

    Joined:
    27 Feb 2007
    Messages:
    336
    Likes Received:
    80
    Reputations:
    0
    оно!только что то тут не так, данные пустые приходят на почту, где косяк?
     
  7. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    913
    Likes Received:
    480
    Reputations:
    724
    В php, отформатируй и выложи, лень тыкать на ентер. (измени первое сообщение, лучше ссылку на pastebin)
     
    _________________________
  8. Bmite

    Bmite Робот-Казанова

    Joined:
    27 Feb 2007
    Messages:
    336
    Likes Received:
    80
    Reputations:
    0
    исходник обработчика
     
  9. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    913
    Likes Received:
    480
    Reputations:
    724
    Накладка (=
    После
    Добавь
     
    _________________________
    1 person likes this.
  10. Bmite

    Bmite Робот-Казанова

    Joined:
    27 Feb 2007
    Messages:
    336
    Likes Received:
    80
    Reputations:
    0
    спасибо бро :-* все фурычит
     
  11. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    Вот что бы не было таких накладок и проблем с кроссбраузерностью

    var req = new ActiveXObject("Microsoft.XMLHTTP"); // IE
    var req = new XMLHttpRequest();

    и существует "джопокуери"
     
    _________________________
  12. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    913
    Likes Received:
    480
    Reputations:
    724
    Gar|k, да, существует, а также существует понятие простота кода.
    function getXmlHttp(){
    var xmlhttp;
    try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    try {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
    xmlhttp = false;
    }
    }
    if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
    }
    return xmlhttp;
    }
    и существует MooTools, и существует scriptjava и еще много хорошего. Но это не значит что это залог здоровья.
     
    _________________________
    1 person likes this.
  13. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    Не спорю все зависит от задачи и подхода к проблеме.
    Для одной странички с одной формой смысла нет исользовать фреймворки.

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

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

    Лично я советую http://vanilla-js.com/
     
    _________________________