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.SU

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


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

> Описание: Форма подписки
SpiritHG
Отправлено: 30 Января, 2015 - 20:33:35
Post Id


Новичок


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


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




Добрый день.
Есть форма подписки:
CODE (html):
скопировать код в буфер обмена
  1. <form action="http://сайт/?task=subform" method="post">
  2. <table border="0">
  3. <tr><td>Имя</td><td><input size=40 type=text name=name></td></tr>
  4. <tr><td>E-mail</td><td><input size=40 type=text name=email></td></tr>
  5. <tr><td></td><td><input type=submit value="Подписаться"></td></tr>
  6. <input type=hidden name=action value=post>
  7. </form>
  8. </table>


И есть обработчик: (на сколько я правильно понялУлыбка)
Файл на поддомене - form.php
Со следующим содержанием:
PHP:
скопировать код в буфер обмена
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>Subscript</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  6. </head>
  7. <body>
  8. <?PHP
  9.  
  10. $url = "http://".$_SERVER["SERVER_NAME"].root()."index.php?task=subform";
  11.  
  12. $get_content = file($url);
  13. $get_content = implode($get_content, "\r\n");
  14.  
  15. preg_match("/<div class=\"subform\">(.*)<\/div>/isU", $get_content, $out);
  16.  
  17. echo $out[1];
  18.  
  19. function root()
  20. {
  21.         if(dirname($_SERVER['SCRIPT_NAME']) == '/' | dirname($_SERVER['SCRIPT_NAME']) == '\') return '/';
  22.         else return dirname($_SERVER['SCRIPT_NAME']) . '/';
  23. }
  24.  
  25. ?>
  26. </body>
  27. </html>


Моя задача сделать чтобы при добавлении емаил и имя и последующего нажатия кнопки добавить - ответ событий появлялся не перегружая страницы, то есть в Ajax

А так как есть - этот скрипт при добавлении данных отправляет на отдельную страницу.... http://сайт/?task=subform
(Добавление)
Не знаю еще как на форуме отредактировать...

Ребята! Очень нужна помощь! Завтра работу сдавать... Огорчение
 
 Top
sekret47
Отправлено: 30 Января, 2015 - 21:00:36
Post Id


Новичок


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


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




этот код не имеет права на существование
 
 Top
SpiritHG
Отправлено: 30 Января, 2015 - 21:03:47
Post Id


Новичок


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


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




По моему это не ответ на мой вопрос, почему?

Решение есть? Просто очень нужно... к утру работу сдать должен (
(Добавление)
Кстати, если это потребует оплаты - много сейчас на кошельке не имею, но примерно 150 рублей есть Радость
(Добавление)
Не сочтите за наглость, просто мне очень нужна помощь. Вместо того, чтобы пить пиво - я сижу и мучаюсь с этим кодом...
PLEESE HELP
 
 Top
skiphog
Отправлено: 30 Января, 2015 - 22:30:10
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Дек. 2014  
Откуда: Киров, Россия


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




SpiritHG пишет:
Не сочтите за наглость, просто мне очень нужна помощь. Вместо того, чтобы пить пиво - я сижу и мучаюсь с этим кодом...


гы
Прикреплено изображение (Нажмите для увеличения)
UUAHhU2gNKw.jpg

(Отредактировано автором: 30 Января, 2015 - 22:30:29)

 
My status
 Top
SpiritHG
Отправлено: 30 Января, 2015 - 22:53:13
Post Id


Новичок


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


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




skiphog cсохранил себе картинкуУлыбка
 
 Top
3d_killer
Отправлено: 30 Января, 2015 - 23:57:24
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


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




SpiritHG пишет:
я сижу и мучаюсь с этим кодом...

у тебя в коде вообще js нету, так что мучайся не мучайся, так не заработает
 
My status
 Top
SpiritHG
Отправлено: 31 Января, 2015 - 00:03:46
Post Id


Новичок


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


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




Это я знаю... я добавлял код на ту страницу, на которой форма ставится.
<script type="text/javascript" src="http://magelit.com.ua/templates/beautyStore/js/jquery-1.8.3.min.js"></script>

И скрипт:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <script type="text/javascript" language="javascript">
  2.    function call() {
  3.      var msg   = $('#formx').serialize();
  4.        $.ajax({
  5.          type: 'POST',
  6.          url: 'Адрес обработчика (на поддомене)',
  7.          data: msg,
  8.          success: function(data) {
  9.            $('.results').html(data);
  10.          },
  11.          error:  function(xhr, str){
  12.                alert('Возникла ошибка: ' + xhr.responseCode);
  13.            }
  14.        });
  15.  
  16.    }
  17. </script>


Но не помогло
 
 Top
3d_killer
Отправлено: 31 Января, 2015 - 00:25:58
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


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




CODE (html):
скопировать код в буфер обмена
  1. <form id="form_new">
  2. <table border="0">
  3. <tr><td>Имя</td><td><input size="40" type="text" name="name"></td></tr>
  4. <tr><td>E-mail</td><td><input size="40" type=text name="email"></td></tr>
  5. <tr><td></td><td><input type='button' onClick="call()" value="Подписаться"></td></tr>
  6. </form>
  7. <div id="result"></div>


CODE (javascript):
скопировать код в буфер обмена
  1. <script>
  2.    function call() {
  3.      var msg   = $("#form_new").serialize();
  4.        $.ajax({
  5.          type: 'POST',
  6.          url: 'php обработчик куда отправлять',
  7.          data: {msg:msg},
  8.          success: function(data) {
  9.            $("#result").html(data);
  10.          },
  11.          error:  function(){
  12.                alert('Возникла ошибка');
  13.            }
  14.        });
  15.  
  16.    }
  17. </script>
 
My status
 Top
SpiritHG
Отправлено: 31 Января, 2015 - 00:49:34
Post Id


Новичок


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


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




3d_killer Спасибо большое! Ваш вариант не молчит и хоть начал ошибку выдавать, значит мы близко Улыбка
Но по моему - это не из-за того, что Вы написали, а из-за того, что обработчик на поддомене... может быть такое?
Или я из скрипта за обработчика не того принял... т.к. в самом скрипте адрес обработчика показан так : http://сайт/?task=subform

Пожалуйста помогите еще немного


Вот изначальная форма:
CODE (html):
скопировать код в буфер обмена
  1. <form id="myForm" action="http://mailer.magelit.com.ua/?task=subform" method="post">
  2. <table border="0">
  3. <tr><td>Имя</td><td style="width: 70%;"><input size=40 type=text name=name></td></tr>
  4. <tr><td>E-mail</td><td style="width: 70%;"><input size=40 type=text name=email></td></tr>
  5. </form>
  6. </table><br>
  7. <div class="btn-cart m-b_15"><input type=submit value="Подписаться" style="width:200px;"></div>
  8. <input type=hidden name=action value=post>

Она работает, но переправляет на другую страницу. В верхней форме на этой странице можно проверить: _http://magelit.com.ua/shop/product/chanel-coco-mademoiselle-eau-de-toilette-tualetnaia-voda-shanel


А нижняя форма выдает ошибку (На сайте она чуть ниже рабочей формы)
CODE (html):
скопировать код в буфер обмена
  1.     <form id="form_new">
  2.     <table border="0">
  3.     <tr><td>Имя</td><td><input size="40" type="text" name="name"></td></tr>
  4.     <tr><td>E-mail</td><td><input size="40" type=text name="email"></td></tr>
  5.     <tr><td></td><td><input type='button' onClick="call()" value="Подписаться"></td></tr>
  6.     </table>
  7.     </form>
  8.     <div id="result"></div>


Посмотрите пожалуйста, мне кажется я упустил где-то, что-то не значительно (
(Добавление)
Вот обработчик по моему:
CODE (html):
скопировать код в буфер обмена
  1.     <!DOCTYPE html>
  2.     <html>
  3.     <head>
  4.     <title>Subscript</title>
  5.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  6.     </head>
  7.     <body>
  8.     <?PHP
  9.    
  10.    $url = "http://".$_SERVER["SERVER_NAME"].root()."index.php?task=subform";
  11.    
  12.    $get_content = file($url);
  13.    $get_content = implode($get_content, "\r\n");
  14.    
  15.    preg_match("/<div class=\"subform\">(.*)<\/div>/isU", $get_content, $out);
  16.      
  17.     echo $out[1];
  18.      
  19.     function root()
  20.     {
  21.             if(dirname($_SERVER['SCRIPT_NAME']) == '/' | dirname($_SERVER['SCRIPT_NAME']) == '\') return '/';
  22.             else return dirname($_SERVER['SCRIPT_NAME']) . '/';
  23.     }
  24.      
  25.     ?>
  26.     </body>
  27.     </html>

Вот его страница: _mailer.magelit.com.ua/form.php (посмотрите и я потом удалю эту ссылку)
 
 Top
3d_killer
Отправлено: 31 Января, 2015 - 01:02:24
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


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




ну так он работает отправляет данные туды http://mailer[dot]magelit[dot]com[dot]ua/form.php
и ожидает ответа который вы не даете вот и вылазит ошибка
сделайте в нем хоть echo "данные получены";
(Добавление)
и вот это все убери
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.     <!DOCTYPE html>
  3.     <html>
  4.     <head>
  5.     <title>Subscript</title>
  6.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  7.     </head>
  8.     <body>
  9.  

это обработчик а не страница для оптимизации
(Добавление)
и вроде это не обработчик он не обрабатывает переданные данные
 
My status
 Top
SpiritHG
Отправлено: 31 Января, 2015 - 01:12:35
Post Id


Новичок


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


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




Дааа. Скорее всего он не обработчик Улыбка
А может быть это обработчик:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3.  
  4. if($_POST['action']){
  5.         $_POST['name'] = trim($_POST['name']);
  6.         $_POST['email'] = trim($_POST['email']);
  7.  
  8.         if(empty($_POST['name'])) error($PNSL["lang"]["error"]["empty_your_name"]);
  9.         if(empty($_POST['email'])) error($PNSL["lang"]["error"]["empty_email"]);
  10.         if(check_email($_POST['email'])) error($PNSL["lang"]["error"]["wrong_email"]);
  11.         if($data->checkExistEmail()) error($PNSL["lang"]["error"]["subscribe_is_already_done"]);
  12.  
  13.         $settings = $data->getSetting();
  14.        
  15.         $token = getRandomCode();
  16.         $status = $settings['require_confirm'] == 'yes' ? 'active' : 'noactive';
  17.        
  18.         $fields = array();
  19.         $fields['id_user']   = 0;
  20.         $fields['name']      = $_POST['name'];
  21.         $fields['email']     = $_POST['email'];
  22.         $fields['ip']        = getIP();
  23.         $fields['token']     = $token;
  24.         $fields['time']      = date("Y-m-d H:i:s");    
  25.         $fields['status']    = $status;
  26.         $fields['time_send'] = '0000-00-00 00:00:00';  
  27.                
  28.         $insert_id = $data->makeSubscribe($fields);
  29.        
  30.         if($insert_id){
  31.                 $isert = $data->insertSubs($insert_id);
  32.                 $result = $data->sendNotification($insert_id,$token);
  33.  
  34.                 echo '<!DOCTYPE html>';
  35.                 echo "<html>\n";
  36.                 echo "<head>\n";
  37.                 echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n";
  38.                 echo "<title>".$PNSL["lang"]["subject"]["subscription"]."</title>\n";
  39.                 echo "</head>\n";
  40.                 echo "<body>\n";
  41.        
  42.                 echo '<p style="text-align: center">';
  43.        
  44.                 if($settings['require_confirm'] == "yes")
  45.                         echo $PNSL["lang"]["msg"]["add_subscribe1"];
  46.                 else
  47.                         echo $PNSL["lang"]["msg"]["add_subscribe2"];
  48.  
  49.                 echo "<br><br><a href=http://".$_SERVER['SERVER_NAME'].">".$PNSL["lang"]["str"]["go_to_homepage"]."</a>\n";
  50.                 echo "</p>\n";
  51.                 echo "</body>\n";
  52.                 echo "</html>";
  53.        
  54.                 exit;
  55.         }
  56.         else{
  57.                 error($PNSL["lang"]["error"]["subscribe"]);
  58.         }      
  59. }
  60.  
  61. //require temlate class
  62. require_once $PNSL["system"]["dir_root"].$PNSL["system"]["dir_libs"]."html_template/SeparateTemplate.php";
  63. $tpl = SeparateTemplate::instance()->loadSourceFromFile($PNSL["system"]["template"]."subform.tpl");
  64.  
  65. //form
  66. $tpl->assign('TITLE_SUBSCRIBE',$PNSL["lang"]["title"]["subscribe"]);
  67. $tpl->assign('ACTION',"http://".$_SERVER["SERVER_NAME"].root()."?task=subform");
  68. $tpl->assign('STR_NAME',$PNSL["lang"]["table"]["name"]);
  69. $tpl->assign('STR_EMAIL',$PNSL["lang"]["table"]["email"]);
  70. $tpl->assign('BUTTON_SUBSCRIBE',$PNSL["lang"]["button"]["subscribe"]);
  71.  
  72. $arr = $data->getCategoryList();
  73.  
  74. foreach($arr as $row){
  75.         $rowBlock = $tpl->fetch('row');
  76.         $rowBlock->assign('ID_CAT',$row['id_cat']);
  77.         $rowBlock->assign('NAME',$row['name']);
  78.         $tpl->assign('row', $rowBlock);
  79. }
  80.  
  81. // display content
  82. $tpl->display();
  83. ?>


По моему он больше похож
 
 Top
3d_killer
Отправлено: 31 Января, 2015 - 01:18:49
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


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




ну так его переписывать надо вы данные то

и отправили как одну переменную ее надо разобрать

а потом обращаться к ним не как

а как
и т.д.
а так у вас данные даже это условие не проходят

так как таких нету и быть не может
все я спать завтра работы много, думаю разберешься дальше
(Добавление)
а да и вывод шаблона убери, он тут не нужен
вот это все
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. //require temlate class
  4. require_once $PNSL["system"]["dir_root"].$PNSL["system"]["dir_libs"]."html_template/SeparateTemplate.php";
  5. $tpl = SeparateTemplate::instance()->loadSourceFromFile($PNSL["system"]["template"]."subform.tpl");
  6.  
  7. //form
  8. $tpl->assign('TITLE_SUBSCRIBE',$PNSL["lang"]["title"]["subscribe"]);
  9. $tpl->assign('ACTION',"http://".$_SERVER["SERVER_NAME"].root()."?task=subform");
  10. $tpl->assign('STR_NAME',$PNSL["lang"]["table"]["name"]);
  11. $tpl->assign('STR_EMAIL',$PNSL["lang"]["table"]["email"]);
  12. $tpl->assign('BUTTON_SUBSCRIBE',$PNSL["lang"]["button"]["subscribe"]);
  13.  
  14. $arr = $data->getCategoryList();
  15.  
  16. foreach($arr as $row){
  17.         $rowBlock = $tpl->fetch('row');
  18.         $rowBlock->assign('ID_CAT',$row['id_cat']);
  19.         $rowBlock->assign('NAME',$row['name']);
  20.         $tpl->assign('row', $rowBlock);
  21. }
  22.  
  23. // display content
  24. $tpl->display();
 
My status
 Top
SpiritHG
Отправлено: 31 Января, 2015 - 01:22:18
Post Id


Новичок


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


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




Может, если Вы еще не убежали - поможете? Ниндзя
(Добавление)
Мне главное, чтобы при добавлении name и email в поле подписки на новинки страница не перегружалась... а просто давала уведомление типа "Вы подписались, Спасибо"

А обработчик - это часть большого скрипта ... мне нужно просто умудриться записать туда данные без перезагрузки страницы
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB