Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: $.post()
 
 автор: Deed   (29.06.2012 в 14:07)   письмо автору
 
 

Здравствуйте!
Помогите с освоением jQuery.

<div id="oh" style="display:none"></div>
            <form id="peter">
            <textarea id="area1" style="width:310px; height:93px;"></textarea>
            </form>
            <button id="bub" value="Send!">Send!</button>
            <script type="text/javascript">
            new nicEditor({buttonList : ['bold','italic','underline','strikeThrough','subscript','superscript','html','link','image','upload']}).panelInstance('area1');
                $("#bub").click(function(e) {
                    e.preventDefault();
                    var newComms = $("#peter").find('.nicEdit-main').html();
                    
                    $('.nicEdit-main').html('');
                    function success_post(adds){
                        $("#oh").html(adds).show('slow');
                    };
                    var dates = {new_post:newComms, auth:<?=$_SESSION['username'];?>};
                    $.post('mambo.php',dates,success_post,'html');
                });
                           
            </script>


Не работает, чего-то...
Вот mambo.php из той-же директории:

<?php
echo "<pre>";
print_r($_POST);
echo 
"</pre>";
?>


Просто, хотел проверить работу $.post.
Не срабатывает чего-то функция success_post().
Хотя, если просто проверить содержимое переменной newComms, то здесь все в порядке:http://jsfiddle.net/MMzhS/215/.

Спасибо.

  Ответить  
 
 автор: AlexSol   (29.06.2012 в 14:21)   письмо автору
 
   для: Deed   (29.06.2012 в 14:07)
 

http://jsfiddle.net/MMzhS/216/

  Ответить  
 
 автор: Deed   (29.06.2012 в 14:28)   письмо автору
 
   для: AlexSol   (29.06.2012 в 14:21)
 

Спасибо, но что-то нет соединения с jsfiddle.net.
В чем моя ошибка? В двух словах хотя бы!

  Ответить  
 
 автор: AlexSol   (29.06.2012 в 14:36)   письмо автору
 
   для: Deed   (29.06.2012 в 14:28)
 

в области видимости

$.post('mambo.php',{asd:'wsx'},function(data){alert(data)});

  Ответить  
 
 автор: Deed   (29.06.2012 в 14:52)   письмо автору
 
   для: AlexSol   (29.06.2012 в 14:36)
 

Ничего не приосходит.
И при чем здесь область видимости? Функция задается и post-переменные формируются непосредственно перед $.post().
Но не происходит никаких событий. Даже див <div id="oh" style="display:none"></div> остается скрытым, хотя:
function success_post(adds){
$("#oh").html(adds).show('slow');
};
WTF???

  Ответить  
 
 автор: confirm   (29.06.2012 в 15:05)   письмо автору
 
   для: Deed   (29.06.2012 в 14:52)
 

<script type="text/javascript"> 
  $("#bub").click(function(e) {
     alert(1)
  }); 
</script>

Единичку показывает?
У формы есть штатная кнопка для отправки, submit называется, и она вполне может отправить форму, без прочих лишних кнопок. Собственно $.post метод отдать этому событию формы.

  Ответить  
 
 автор: Deed   (29.06.2012 в 15:18)   письмо автору
 
   для: confirm   (29.06.2012 в 15:05)
 

Здравствуйте, confirm!!

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

Вы знаете, вот такая конструкция:

<div id="oh" style="display:none"></div>
            <form id="peter">
            <textarea id="area1" style="width:310px; height:93px;"></textarea>
            </form>
            <button id="bub" value="Send!">Send!</button>
            <script type="text/javascript">
            new nicEditor({buttonList : ['bold','italic','underline','strikeThrough','subscript','superscript','html','link','image','upload']}).panelInstance('area1');
                $("#bub").click(function(e) {
                    
                    var newComms = $("#peter").find('.nicEdit-main').html();
                    
                    $('.nicEdit-main').html('');
                                        
                    $("#oh").html(newComms).show('slow');
                    
                });
                           
            </script>



Работает нормально. Как тут: http://jsfiddle.net/MMzhS/218/
У меня же вопрос - что не так в этом простеньком post-запросе?

  Ответить  
 
 автор: confirm   (29.06.2012 в 15:31)   письмо автору
 
   для: Deed   (29.06.2012 в 15:18)
 

Даже показывает единицу у вас?! Будем сочинять или признаваться, что вы не проверили?
Не будет у вас никакой единицы. Вот так будет работать (выброшено все, чего у меня нет):

<?php
if(isset($_POST['auth'])) {
   echo 
'<b>Work</b>';
   exit; 
}
?>
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script type="text/javascript">
$(function(){
  $("#bub").click(function(e) {
     var dates = {new_post:'newComms', auth:1}; 
     $.post('',dates,function(data){
       $("#oh").html(data).show('slow'); 
     },'html'); 
  }); 
});
</script>    
</head>
<body>
<div id="oh" style="display:none"></div> 
<form id="peter"> 
  <textarea id="area1" style="width:310px; height:93px;"></textarea> 
</form> 
<button id="bub">Send!</button>
</body>
</html>

Выполните это отдельным файлом.
Проблема не в ajax, а в том как вы обработчик объекту определили.

>Я специально вынес сабмит за форму. Мне, в итоге, нужно добавление сложного контента с графикой и тегами без перезагрузки страницы.

Вы полагаете, что место положения кнопки определяет будет перегружена страница или нет? Вот вы "воткнули" в код e.preventDefault(), а понимаете, что это означает?

PS. И разбивайте свой код, не надо такие длинные строки городить когда в этом нет нужды, читать такое...

  Ответить  
 
 автор: Deed   (29.06.2012 в 15:36)   письмо автору
209.9 Кб
 
   для: confirm   (29.06.2012 в 15:31)
 

Зачем мне, попросив помощи, врать?? Посмотрите на картинку.

  Ответить  
 
 автор: Deed   (29.06.2012 в 15:36)   письмо автору
225 Кб
 
   для: confirm   (29.06.2012 в 15:31)
 

И на вторую:

  Ответить  
 
 автор: confirm   (29.06.2012 в 15:45)   письмо автору
 
   для: Deed   (29.06.2012 в 15:36)
 

Ну по картинке и картинка иная, в смысле структуры кода.
Но все таки уберите обработчики из html блока, зачем они там.
То что я показал выполняется, а если у вас не происходит отправки, то значит перед этим есть ошибка. Проверьте в отладчике.

  Ответить  
 
 автор: Deed   (29.06.2012 в 15:43)   письмо автору
 
   для: confirm   (29.06.2012 в 15:31)
 

e.preventDefault() в моем скромном понимании, когда в форме был сабмит, выполнял роль запрета действия по-умолчанию, то есть отправки формы с перезагрузкой всей страницы.

Да, работает Ваш пример. Может быть, я неправильно задаю функцию success_post()??

  Ответить  
 
 автор: confirm   (29.06.2012 в 15:49)   письмо автору
 
   для: Deed   (29.06.2012 в 15:43)
 

http://jquery.page2page.ru/index.php5/%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82_event
Это означает, что отправку формы можно прервать не зависимо от того какой кнопкой и где расположенной вы ее вызвали.

  Ответить  
 
 автор: Deed   (29.06.2012 в 16:25)   письмо автору
 
   для: confirm   (29.06.2012 в 15:49)
 

Я хочу извиниться перед всеми, но ошибка была феноменально проста - я забыл сделать обрамление кавычками значение элемента post-массива "auth" - ... auth:'<?=...?>'...

Спасибо большое за помощь!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования