Модераторы: Sardar, Aliance
  

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Обход формы и отправка значение, jQuery 
V
    Опции темы
MoLeX
Дата 27.5.2010, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: нет
Всего: 140



Таким способом обхожу форму и отправляю данные
Код

var str = "ajax=hi";
$("#myform input, select").each(function(n, element)
{
     if($(element).attr("type") != "button")
            str = str + "&" + $(element).attr("id") + "="+$(element).val();
});
      
$.post('ajax.php', {parametr: str}, function(data){ $("#text").html(data); }, 'json');


В итоге на сервере приходится выполнять лишнию операцию - разбирать parametr
Как можно модернизировать?


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
gcc
Дата 27.5.2010, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



MoLeX, 

не совсем понял, что значит "разбирать parametr"?

на клиенте структура данных на js серелизируются в  json, на сервер из json в структуру в языке (или объект)...



Код

    <script type="text/javascript" src="/dev/jquery-1.3.2.js"></script> 

<script type="text/javascript" src="/latest/jquery.json-2.2.js"></script>

....................................................


                    
       var formData = {
            "text_cm":$("textarea#text_cm2").val()
            , "id_comment":$("input#id_comment").val()  
};
       
        
        
        $.ajax({
      type: "POST",

      url: "/comments_photo/edit2",
      data:'jsonData=' + encodeURIComponent( $.toJSON(formData) ),
      dataType: "json",      
      success: function(msg) {

    if (msg.success_ok > 0) {

        $('#error_comment').html( ' ');



    
    $( '#edit_comment-' + msg.id_cm ).html( msg.text_cm );

....................................................




или что-то другое имелось ввиду?




Это сообщение отредактировал(а) gcc - 27.5.2010, 08:13
PM WWW ICQ Skype GTalk Jabber   Вверх
MoLeX
Дата 27.5.2010, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: нет
Всего: 140



gcc, допустим у нас есть форма
Код

<form name="myform" id="myform">
   <input type="text" name="fio" id="fio" value="Ivanov" />
   <input type="text" name="data" id="data" value="2010" />
</form>


после её обработки на сервер приходят данные
Код

<?php
echo $_POST['parametr']; // пришло: ajax=hi&fio=Ivanov&data=2010
?>


а хотелось, что бы приходило так:
Код

<?php
echo $_POST['ajax']; // пришло: hi
echo $_POST['fio']; // пришло: Ivanov
echo $_POST['data']; // пришло: 2010
?>



--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
gcc
Дата 27.5.2010, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



то как ты хочешь, я видел:

Код

    $.post("ajax.php", 
        {
        act: "send",  // указываем скрипту, что мы отправляем новое сообщение и его нужно записать
        name: $("#pac_name").val(), // имя пользователя
        text: $("#pac_text").val() //  сам текст сообщения
    },



Код

$_POST['act']
$_POST['name']
$_POST['text']



====================================

в примере котором я привел:

хэш formData серелизируется в json и на сервер прийдет jsonData  
Код

$_POST['jsonData']


Код

$j = array();
$j = json_decode($_POST['jsonData']);





PM WWW ICQ Skype GTalk Jabber   Вверх
ksnk
Дата 27.5.2010, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Цитата(MoLeX @  27.5.2010,  08:20 Найти цитируемый пост)
а хотелось, что бы приходило так:

Код

$.post('ajax.php', str, function(data){ $("#text").html(data); }, 'json');

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

Это сообщение отредактировал(а) ksnk - 27.5.2010, 08:51


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
MoLeX
Дата 27.5.2010, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: нет
Всего: 140



gcc, то что ты предлагаешь означает, что мне надо перечислить ВСЕ input'ы и select'ы, и в дальнейшем при добавление\удалении исправлять скрипт. так не пойдет

Добавлено через 5 минут и 49 секунд
Цитата(ksnk @  27.5.2010,  08:50 Найти цитируемый пост)
Кстати, есть специально обученая функция serialize

ай-ай. дурак(((
можно было сделать все намного проще и красивее

Код

$.post('ajax.php', $("#myform input, select").serialize(), function(data){ $("#text").html(data); }, 'json');



--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
gcc
Дата 27.5.2010, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



MoLeX, 

это подошло?

Код

    $.post("ajax.php", 
        {
        act: "send",  // указываем скрипту, что мы отправляем новое сообщение и его нужно записать
        name: $("#pac_name").val(), // имя пользователя
        text: $("#pac_text").val() //  сам текст сообщения
    },



Код

$_POST['act']
$_POST['name']
$_POST['text']


=====

а в json приходит $_POST['jsonData']

Код

json_decode($_POST['jsonData']);


дальше десерелизируй и делать с ним что хочешь...
как это еще написать?


чтобы увидеть что пришло:
Код

var_dump(json_decode($_POST['jsonData']));


я у себя в блоге написал:
http://www.x0.org.ua/blog/user/1/view/23








Это сообщение отредактировал(а) gcc - 27.5.2010, 09:24
PM WWW ICQ Skype GTalk Jabber   Вверх
gcc
Дата 27.5.2010, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



я вот еще вспомнил можно просто id формы написать smile



Код

1    <form id="myForm" action="comment.php" method="post">
2      Имя: <input type="text" name="name" />
3      Комментарий: <textarea name="comment"></textarea>
4      <input type="submit" value="Комментировать" />
5    </form>



Код

1    <script type="text/javascript">
2    $(document).ready(function(){
3       $("#myForm").ajaxForm(function() {
4         alert("Спасибо за комментарий!");
5       });
6    });
7    </script>


подробно тут:
http://www.linkexchanger.su/2008/45.html




Код

$.post('/gruop/add', $('#form_id').serialize(), function(data) {
// тут код, который выполнится по завершении запроса
// data - ответ, который вернул сервер
}); 


Это сообщение отредактировал(а) gcc - 27.5.2010, 09:39
PM WWW ICQ Skype GTalk Jabber   Вверх
MoLeX
Дата 27.5.2010, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: нет
Всего: 140





--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0534 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.