Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: связка Ajax и PHP

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: отправка формы без перезагрузки страницы
dsqwared
Отправлено: 15 Июля, 2015 - 12:02:19
Post Id



Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




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

файл 1.php
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <form action=""  id="contactForm" class="wpcf7-form" method="post">                                                     <label>Ваше имя *</label>
  3. <input type="text" name="index" id="index" class="textfield" required="" value="" />
  4. <label>Ваш E-Mail *</label>
  5. <input type="email" name="email" id="email" class="textfield" required="" value="" />
  6. <label class="text-label">Ваш вопрос *</label>
  7. <textarea name="contactSurName" id="contactSurName" class="textarea" value=""></textarea>
  8. <input type="button" style="width: 100%;margin-top: 10px;" id="send_button" class="button" value="Задать вопрос" />
  9. <input type="hidden" name="submitted" id="submitted" value="true" />  
  10. </form>


ajax.js
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. document.getElementById('send_button').onclick = function() {
  3.  var data={
  4.  userName: $('#index').val(),
  5.  email: $('#email').val(),
  6.  contactSurName: $('#contactSurName').val(),
  7.  submitted: $('#submitted').val(),
  8. }
  9.  $.ajax({
  10.                 type: "POST",
  11.                 url: "1.php",
  12.                 data:   data,
  13.         });
  14.  }


в файле 1.php, хочу сделать обработчик

PHP:
скопировать код в буфер обмена
  1. if(isset($_POST['submitted'])) {  
  2. wp_mail($emailTo, $subject, $body, $headers);
  3. }


что ж не так делаю? данные отправляются в файл 1.php но почему-то файл 1.php как будто не видит данных...
 
 Top
Tyoma5891
Отправлено: 15 Июля, 2015 - 12:32:41
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 621
Дата рег-ции: Авг. 2013  


Помог: 5 раз(а)




dsqwared пишет:
данные отправляются в файл 1.php

а с чего Вы это взяли?
 
 Top
dsqwared
Отправлено: 15 Июля, 2015 - 13:12:15
Post Id



Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




вот тут видны данные
Прикреплено изображение (Нажмите для увеличения)
Скриншот 2015-07-15 13.10.28.png
 
 Top
difight
Отправлено: 15 Июля, 2015 - 13:18:08
Post Id



Посетитель


Покинул форум
Сообщений всего: 355
Дата рег-ции: Нояб. 2011  


Помог: 3 раз(а)




в файле 1.php сделай
и посмотри в каком виде приходят данные
 
My status
 Top
dsqwared
Отправлено: 15 Июля, 2015 - 13:23:02
Post Id



Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




пустой массив ((((
 
 Top
difight
Отправлено: 15 Июля, 2015 - 13:26:43
Post Id



Посетитель


Покинул форум
Сообщений всего: 355
Дата рег-ции: Нояб. 2011  


Помог: 3 раз(а)




а так если сделать ?
CODE (htmlphp):
скопировать код в буфер обмена
  1. $.ajax({
  2.                 type: "POST",
  3.                 url: "1.php",
  4.                 data:  "data="+data,
  5.         });
  6.  

(Отредактировано автором: 15 Июля, 2015 - 13:27:40)

 
My status
 Top
dsqwared
Отправлено: 15 Июля, 2015 - 13:33:05
Post Id



Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




все-равно пусто Огорчение , только теперь в консоли данные выглядят так

(Добавление)
сделал так
CODE (javascript):
скопировать код в буфер обмена
  1. $.ajax({
  2.                 type: "POST",
  3.                 url: "1.php",
  4.                  data:  data,
  5.                 success: function(data1) {
  6.                         $("#result").empty();
  7.                         $("#result").append(data1);
  8.                        
  9.                }
  10.  
  11.         });

в файле 1.php так

PHP:
скопировать код в буфер обмена
  1. if(isset($_POST['submitted'])) {    var_dump($_POST);}
  2.                 <div id="result"></div>
  3.  



после оправки формы, в теге #result появляется то, что выводит var_dump
CODE (html):
скопировать код в буфер обмена
  1. <div id="result">    array(4) {
  2.   ["userName"]=>
  3.   string(8) "testва"
  4.   ["email"]=>
  5.   string(16) "dsqwared@ukr.net"
  6.   ["contactSurName"]=>
  7.   string(3) "222"
  8.   ["submitted"]=>
  9.   string(4) "true"
  10. }
  11. </div>


как-бы что-то да и работает....

пот только не пойму.. как сделать так чтобы не выводило результат в div а после прихода ответа, выполнять какую-то функцию на php?

(Отредактировано автором: 15 Июля, 2015 - 13:51:22)

 
 Top
difight
Отправлено: 15 Июля, 2015 - 14:05:54
Post Id



Посетитель


Покинул форум
Сообщений всего: 355
Дата рег-ции: Нояб. 2011  


Помог: 3 раз(а)




В файле 1.php
PHP:
скопировать код в буфер обмена
  1.  
  2. if(isset($_POST['submitted'])) {
  3. Тут код твоей функции;
  4.  
  5. и возврат результата например так:
  6.  
  7. echo json_encode(array('error' => 0)); // ну или 1 если ошибка какая нить
  8. return;
  9. }
  10.  

И обрабатывай результат, в jq

А уже в jq Обрабатывай возврат с php
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2.     $.ajax({
  3.                     type: "POST",
  4.                     url: "1.php",
  5.                     data:  data,
  6.                     dataType: 'json',
  7.                     success: function(data) {
  8.                             if (data.error == 0) {
  9.                                  alert ('Функция успешно завершила работу');
  10.                             } else {
  11.                                  alert ('Ахтунг');
  12.                             }
  13.                    }
  14.      
  15.             });
  16.  
 
My status
 Top
dsqwared
Отправлено: 15 Июля, 2015 - 14:55:17
Post Id



Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




хз, правильно я понял?

в 1.php
PHP:
скопировать код в буфер обмена
  1. if(isset($_POST['submitted'])) {  
  2.  wp_mail($mail, "test3", "test2","test1");
  3. echo json_encode(array('error' => 0)); // ну или 1 если ошибка какая нить
  4. return;}


в ajax
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. document.getElementById('send_button').onclick = function() {
  3.  var data={
  4.  userName: $('#index').val(),
  5.  email: $('#email').val(),
  6.  contactSurName: $('#contactSurName').val(),
  7.  submitted:$('#submitted').val(),
  8. }
  9.  $.ajax({
  10.                 type: "POST",
  11.                 url: "1.php",
  12.                  data:  data,
  13.                 success: function(data1) {  
  14.                          if (data1.error == 0) {
  15.                                  alert ('Функция успешно завершила работу');
  16.                             } else {
  17.                                  alert ('Ахтунг');
  18.                             }
  19.                 }
  20.         });
  21.  }
  22.  


выкидывает Ахтунг.


или я принцип не доганяю...

хочу сделать чтобы по нажатию кнопки в форме данные отправлялись в 1.php без перезагрузки страницы, а в 1.php уже был обработчик полей, если все ок, то отправляем письмо ...
 
 Top
IllusionMH
Отправлено: 15 Июля, 2015 - 15:09:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




dsqwared, в отладчике гляньте что в data. Подозреваю что там строка, а не объект так как респонсТайп никто в json не выставил и сомневаюсь что заголовки тоже.
 
 Top
dsqwared
Отправлено: 15 Июля, 2015 - 15:57:29
Post Id



Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




IllusionMH, вот такое мне в отладчике выдало
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. data = Object {userName: "testва", email: "dsqwared@ukr.net", contactSurName: "asdas", submitted: "true"}
  3. 92
  4.  userName: $('#index').val(),
  5. 93
  6.  email: $('#email').val(),
  7. 94
  8.  contactSurName: $('#contactSurName').val(),
  9. 95
  10.  submitted: 'true',//$('#submitted').val(),
  11. 96
  12. }
  13. 97
  14.  $.ajax({
  15. 98
  16.                 type: "POST",
  17. 99
  18.                 url: "/wp-content/themes/flat-metro/page-template/front-page.php", //my_ajax_object.ajax_url,
  19. 100
  20.                 //url: "/wp-admin/admin-ajax.php",
  21. 101
  22.                 //url: my_ajax_object.ajax_url,
  23. 102
  24.                 //data:   data, //$('form').serialize() ,
  25. 103
  26.                 //'action': 'true_function',
  27. 104
  28.                  data:  data,
  29. data = Object {userName: "testва", email: "dsqwared@ukr.net", contactSurName: "asdas", submitted: "true"}
  30. 105
  31.                 success: function(data) {
  32. 106
  33.                         $("#result").empty();
  34. 107
  35.                         $("#result").append(data);
  36. data = Object {userName: "testва", email: "dsqwared@ukr.net", contactSurName: "asdas", submitted: "true"}
  37. 108
  38.                          if (data.error == 0) {
  39. 109
  40.                                  alert('Функция успешно завершила работу');
  41. 110
  42.                             } else {
  43. 111
  44.                                  alert(data.submitted);
  45. data = Object {userName: "testва", email: "dsqwared@ukr.net", contactSurName: "asdas", submitted: "true"}
  46. 112
  47.                             }
  48. 113
  49.                         // document.getElementById('result').innerHTML=html;
  50. 114
  51.                         // $('#result').html(data);
  52. 115
  53.  
  54. 116
  55.                 }
  56. 117
  57.  
  58. 118
  59.         });
  60. 119
  61.  }
  62. 120
  63.  
  64. 121
  65.  
  66. 122
  67.  
  68. 123
  69.  
  70. 124
  71.  
  72. 125
  73.  
  74. 126
  75.   $('.work-box .projects-slider ul').responsiveSlides({
  76. 127
  77.     nav: true,
  78. 128
  79.     auto: true,
  80. 129
  81.     maxwidth: '400',
  82. 130
  83.     timeout: 3000,
  84. 131
  85.     prevText: "",
  86. 132
  87.     nextText: "",
  88. 133
  89.     });
  90. 134
  91.  
  92. 135
  93.   $('.big-column .projects-slider ul').responsiveSlides({
  94. 136
  95.     nav: true,
  96.  
  97. Pause On Caught Exceptions
  98. Watch
  99. data: Object
  100. contactSurName: "asdas"
  101. email: "dsqwared@ukr.net"
  102. submitted: "true"
  103. userName: "testва"
  104. __proto__: Object
  105. __defineGetter__: __defineGetter__() { [native code] }
  106. __defineSetter__: __defineSetter__() { [native code] }
  107. __lookupGetter__: __lookupGetter__() { [native code] }
  108. __lookupSetter__: __lookupSetter__() { [native code] }
  109. constructor: Object() { [native code] }
  110. hasOwnProperty: hasOwnProperty() { [native code] }
  111. isPrototypeOf: isPrototypeOf() { [native code] }
  112. propertyIsEnumerable: propertyIsEnumerable() { [native code] }
  113. toLocaleString: toLocaleString() { [native code] }
  114. toString: toString() { [native code] }
  115. valueOf: valueOf() { [native code] }
  116. get __proto__: __proto__() { [native code] }
  117. set __proto__: __proto__() { [native code] }
  118.  
 
 Top
difight
Отправлено: 20 Июля, 2015 - 18:36:34
Post Id



Посетитель


Покинул форум
Сообщений всего: 355
Дата рег-ции: Нояб. 2011  


Помог: 3 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. document.getElementById('send_button').onclick = function() {
  3.  var data= $(this).parents("form").serialize();
  4.  $.ajax({
  5.                 type: "POST",
  6.                 url: "1.php",
  7.                  data:  data,
  8.                 success: function(data1) {  
  9.                          if (data1.error == 0) {
  10.                                  alert ('Функция успешно завершила работу');
  11.                             } else {
  12.                                  alert ('Ахтунг');
  13.                             }
  14.                 }
  15.         });
  16.  }
  17.  

Так попробуй

(Отредактировано автором: 20 Июля, 2015 - 18:36:48)

 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB