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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
MBmusic
Отправлено: 11 Марта, 2012 - 15:21:22
Post Id


Посетитель


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


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




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

файл с ajax скриптом:
CODE (htmlphp):
скопировать код в буфер обмена
  1. function send()
  2. {
  3. //Получаем параметры
  4. var data = $('#mydata').val()
  5.   // Отсылаем паметры
  6.        $.ajax({
  7.                 type: "POST",
  8.                 url: "SendData.php",
  9.                 data: "data="+data,
  10.                 // Выводим то что вернул PHP
  11.                 success: function(html) {
  12.  //предварительно очищаем нужный элемент страницы
  13.                         $("#result").empty();
  14. //и выводим ответ php скрипта
  15.                         $("#result").append(html);
  16.                 }
  17.         });
  18.  
  19. }


файл с php скриптом:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. //Получаем данные
  3. $data = $_POST[data];
  4. //Так как все данные приходят в кодировке UTF при необходимости
  5. //их можно/нужно конвертировать в нужную, но мы этого делать не будем
  6.  
  7. //$data = iconv("utf-8", "windows-1251", $data);
  8.  
  9. //подключаемся к базе
  10. include 'config.php';
  11. $queryreg = mysql_query("INSERT INTO new (data) VALUES ('$data')") or die (mysql_error());
  12.  
  13. /*
  14. тут можно делать все что угодно с полученными данными, а мы их просто выведем на печать.
  15. */
  16.  
  17. echo "А вот то что мы отправили<br>".$data;
  18.  
  19. ?>


файл с формой и тд:
CODE (html):
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Отправка формы Ajax</title>
  5. <script src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js' type='text/javascript'></script>
  6. <script type="text/javascript" src="ajax.js"></script>
  7. </head>
  8.  
  9. <body>
  10.  
  11. <form action="" id="myform">
  12. <input type="text" name="mydata" id="mydata" />
  13. <input type="button" onclick="send();" value="Отправить" />
  14. </form>
  15. <div id="result"></div>
  16. </body>
  17. </html>

(Добавление)
и вообще, может у когото есть примерчики какие нить подобные......просто надоело уже когда при отправки данных через форму перезагружается страница а не приложение, не удобно както получается(
 
 Top
Panoptik
Отправлено: 11 Марта, 2012 - 15:36:23
Post Id



Постоянный участник


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


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




а что значит что скрипт не работает при перезагрузке?


-----
Just do it
 
 Top
MBmusic
Отправлено: 11 Марта, 2012 - 15:59:30
Post Id


Посетитель


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


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




в смысле ничего не выводит...((
 
 Top
DelphinPRO
Отправлено: 11 Марта, 2012 - 16:02:16
Post Id



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


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


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




MBmusic пишет:
просто надоело уже когда при отправки данных через форму перезагружается страница а не приложение


вешайте функцию send() на onsubmit() формы и возвращайте false? чтобы запретить отправку формы


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
MBmusic
Отправлено: 11 Марта, 2012 - 16:21:10
Post Id


Посетитель


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


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




а можно ли сделать средствами php так что бы при отправке из формы данных пользователя не перекидовало в начало страницы при перезагрузке страницы?? ну типо результат тот же что и от аякса но перегружает всю страницу?) ну походу ж никак нельзя))...
 
 Top
DelphinPRO
Отправлено: 11 Марта, 2012 - 16:31:10
Post Id



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


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


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




поставьте якорь <a name="form"></a> перед формой
и редиректите на file.php#form

если я правильно понял


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
MBmusic
Отправлено: 11 Марта, 2012 - 16:41:16
Post Id


Посетитель


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


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




эмм не совсем понял что вы мне хотели сказать......например вот у меня есть форма:
CODE (html):
скопировать код в буфер обмена
  1. <div class="post_div">
  2. <form action="" name="post" method="post" enctype="multipart/form-data">
  3.    <table>
  4.      <tr>
  5.          <td><font>Тема:</font></td>
  6.      <td><input style="width:423px;" type="text" name="post_name"></td>
  7.          </tr>
  8.          <tr>
  9.          <td><font>Зміст:</font></td>
  10.          <td><textarea size="35" type="text" rows="10" cols="50" name="post"></textarea></td>
  11.          </tr>
  12.          <tr>
  13.          <td></td>
  14.          <td><input type="submit" value="Відправити на стіну" name="submit"></td>
  15.          </tr>
  16.    </table>
  17. </form>
  18. </div>


что и где поменять нужно или дописать?
 
 Top
DelphinPRO
Отправлено: 11 Марта, 2012 - 16:51:13
Post Id



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


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


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




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


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
MBmusic
Отправлено: 11 Марта, 2012 - 16:52:32
Post Id


Посетитель


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


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




да!!) именно так и надо!
 
 Top
DelphinPRO
Отправлено: 11 Марта, 2012 - 16:55:40
Post Id



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


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


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




CODE (html):
скопировать код в буфер обмена
  1. <a name="form"></a>
  2. <form action="" name="post" method="post" enctype="multipart/form-data">
  3. ...

(Добавление)
а в php пишешь (пусть файл с формой например называется index.php)
PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['post'])) {
  2.       // тут обработка даных
  3.       // после всех действий
  4.       header ('Location: index.php#form');
  5. }

(Отредактировано автором: 11 Марта, 2012 - 16:59:10)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
MBmusic
Отправлено: 11 Марта, 2012 - 17:14:10
Post Id


Посетитель


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


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




ну у меня тут вот например php и html идет вместе...

PHP:
скопировать код в буфер обмена
  1.                             <?PHP
  2.                  
  3.                 $com_name = $_POST['com_name'];
  4.                 $com_post = nl2br($_POST['com_post']);
  5.                 $com_submit = $_POST['com_submit'];
  6.  
  7.                 $date_com = date("d.m.y");
  8.                 $date_time_com = date("G:i");
  9.                
  10.                                
  11.                 if ($com_submit)
  12.                 {
  13.                    if ($com_name&&$com_post)
  14.                    {                                 
  15.                                       $queryreg = mysql_query("INSERT INTO comments (name, text, date, date_time, post_id) VALUES ('$com_name', '$com_post', '$date_com', '$date_time_com', '$post_id')") or die(mysql_error());
  16.                       ?>    <script> location.replace(window.location); </script><?PHP
  17.                                    }   
  18.                    else
  19.                    {
  20.                           echo "<div style='color:red'>Не все поля заполнены!</div>";
  21.                    }     
  22.                 }
  23.  
  24.                 ?>
  25.                                 <a name="form"></a>
  26.                                 <form action="" name="post" method="post">
  27.                   <table>
  28.                                   <tr>
  29.                                      <td>Ваше имя:</td>
  30.                                   </tr>
  31.                   <tr>
  32.                      <td class="name_com_inp"><input type="text" name="com_name"></td>
  33.                       </tr>
  34.                                   <tr>
  35.                                      <td>Комментарий:</td>
  36.                                   </tr>
  37.                       <tr>
  38.                          <td class="text_com_inp"><textarea size="35" type="text" rows="5" cols="32" name="com_post"></textarea></td>
  39.                       </tr>
  40.                       <tr height="60">
  41.                          <td><input class="button_com" type="submit" value="Оставить комментарий" name="com_submit"></td>
  42.                      </tr>
  43.                  </table>
  44.                </form>  
  45.                          </div>
  46.                    </div>


делал так как вы сказали чето не работает......мб это из-за того что у меня после того как нажата кнопка стоит перезагрузка страницы:

PHP:
скопировать код в буфер обмена
  1. if ($com_name&&$com_post)
  2.                    {                                 
  3.                                       $queryreg = mysql_query("INSERT INTO comments (name, text, date, date_time, post_id) VALUES ('$com_name', '$com_post', '$date_com', '$date_time_com', '$post_id')") or die(mysql_error());
  4.                       ?>    <script> location.replace(window.location); </script><?PHP
  5.                                    }
 
 Top
DelphinPRO
Отправлено: 11 Марта, 2012 - 17:20:26
Post Id



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


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


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




да, вместо javascript-редиректа поставьте

index.php - это должно быть название вашего файла

(Отредактировано автором: 11 Марта, 2012 - 17:21:10)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
MBmusic
Отправлено: 11 Марта, 2012 - 17:38:50
Post Id


Посетитель


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


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




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



не указывал страницу, ссылается на то что в данный момент активно...) спасибо тебе DelphinPRO за помошь! кстате а зачем писать die();? что оно в данном случае дает??
 
 Top
Мелкий Супермодератор
Отправлено: 11 Марта, 2012 - 17:54:28
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




MBmusic пишет:
не указывал страницу, ссылается на то что в данный момент активно...)

Возможно, в вашем браузере это и так, но большинство браузеров будут перебрасывать на http://host/#form
(Добавление)
MBmusic пишет:
кстате а зачем писать die();? что оно в данном случае дает??

Прерывает выполнение скрипта. Даёт гарантию того, что дальше скрипт исполняться не будет.


-----
PostgreSQL DBA
 
 Top
MBmusic
Отправлено: 11 Марта, 2012 - 18:18:16
Post Id


Посетитель


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


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




Мелкий пишет:
MBmusic пишет:
не указывал страницу, ссылается на то что в данный момент активно...)

Возможно, в вашем браузере это и так, но большинство браузеров будут перебрасывать на http://host/#form
(Добавление)
MBmusic пишет:
кстате а зачем писать die();? что оно в данном случае дает??

Прерывает выполнение скрипта. Даёт гарантию того, что дальше скрипт исполняться не будет.


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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB