0 Пользователей и 1 Гость просматривают эту тему.
  • 13 Ответов
  • 1581 Просмотров
*

Joker

  • Захожу иногда
  • 235
  • 3 / 0
Ребят, помогите, может ссылкой может советом или примером.

Вопрос по болшей степени по jQuery
пишу небольшой компонент в котором есть

<a onclick="function_1()"> тест</a>

в function_1()  идет обращение к php файлу и загрузка результата в определенный div

возвращает он форму
 
Цитировать
  <form class="form-horizontal" id="setting_form" action="/update_user.php" method="post" role="form">
    <div class="form-group">
    <label for="accuracy" class="col-sm-6 control-label">Точность определения координат</label>
    <div class="col-sm-6">
    <label class="radio-inline">
        <input type="radio" name="accuracy" <?php if($accuracy==1){echo 'checked="checked"';}?> value="1"> Точно
      </label>
      <label class="radio-inline">
        <input type="radio" name="accuracy" <?php if($accuracy==0){echo 'checked="checked"';}?> value="0"> Менее точно
      </label>
    </div>
  </div>
</form>

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

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

ведь изначально элементов нет не было на странице.

*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Jquery обращение к элементам
« Ответ #1 : 28.08.2014, 16:53:26 »
А разве jQuery не пофиг, был ли элемент на странице или нет?
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Re: Jquery обращение к элементам
« Ответ #2 : 28.08.2014, 16:58:24 »
если я правильно понял, то нужно использовать "on", тогда метод будет поддерживать динамические элементы
пример
Код
$('body').on('click', 'button', function(){
....
})
*

Joker

  • Захожу иногда
  • 235
  • 3 / 0
Re: Jquery обращение к элементам
« Ответ #3 : 28.08.2014, 17:08:24 »
если я правильно понял, то нужно использовать "on", тогда метод будет поддерживать динамические элементы
пример
Код
$('body').on('click', 'button', function(){
....
})

да вы совершенно верно поняли,  я как раз читал про него. но вопрос у меня в том что с "on" я перехватываю событие нажатие на кнопку, а вот как мне получить значения из формы?

console.log($( "#setting_form" ).serialize());     
пусто
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Re: Jquery обращение к элементам
« Ответ #4 : 28.08.2014, 17:23:41 »
я не понял где пишется этот console.log :)
попробовать можно так
Код
$('body').on('click', 'button', function(){
console.log($(this).parents('form').serialize());
})
и в форме в топике button я не увидел)
*

Joker

  • Захожу иногда
  • 235
  • 3 / 0
Re: Jquery обращение к элементам
« Ответ #5 : 28.08.2014, 17:32:52 »
приведу полный перечень


файл Index.php
в нем идет :

Код
            
<a href="#" data-toggle="modal" data-target="#setting" onclick="setting_user()">Настройки наблюдения</a>

<div class="modal fade" id="setting" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-body">
    </div>
</div>

<script type="text/javascript">
// ф-я кот подгружает в div форму
function setting_user(){
     var child_id    = $('input#child_id').val();
     $.post( "/setting_user.php",{child_id:child_id,user_id: "<? echo $uid; ?>", password:"<? echo $password; ?>"},function(data){$("#setting .modal-body").html(data)});
  return false;
}

// обработка клика сохранения
$( "#save_setting" ).on( "click", function() {
console.log($( "#setting_form" ).serialize());
    $.post( "update_user.php",$( "#setting_form" ).serialize(),function(data){    alert('Изменения сохранены');});
});
</script>


файл погрузки формы редактирования настроек setting_user.php

Код
SQL запрос .....
и вывод формы
<form class="form-horizontal" id="setting_form" action="/update_user.php" method="post" role="form">
<?
       $t_gps   = intval($result['t_gps']); // t_gps - сколько GPS будет пытаться поймать координаты
       $p_wifi  = intval($result['p_wifi']); // p_wifi - период запросов координат по WI-Fi
       $p_gps   = intval($result['p_gps']); // p_gps - период запроса координат по GPS
       $p_send  = intval($result['p_send']); // p_send - период отправки пакетов на сервер
       $p_restart= intval($result['p_restart']); // p_restart - период перезапуска сервиса
?>
      <h4>Настройки Android <span class=" glyphicon glyphicon-phone"></span>: <?php echo  $result['name'].'('.$result['EMIE'].')'?></h4>

        <div class="form-group">
          <label for="inputEmail3" class="col-sm-7 control-label">сколько GPS будет пытаться поймать координаты </label>
          <div class="col-sm-3">
            <input type="text" class="form-control" value="<?php echo $t_gps?>" placeholder="120">
          </div>
          <div class="col-sm-3">120 сек</div>
        </div>
        <div class="form-group">
          <div class="col-sm-offset-2 col-sm-12">
            <button type="submit" id="save_setting"  class="btn btn-default">Изменить</button>
          </div>
        </div>
      </form>

вот как раз не могу разобраться как сделать

$( "#save_setting" ).on( "click", function() {
console.log($( "#setting_form" ).serialize());
    $.post( "update_user.php",$( "#setting_form" ).serialize(),function(data){    alert('Изменения сохранены');});
alert( $( this ).text() );
});


*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Re: Jquery обращение к элементам
« Ответ #6 : 28.08.2014, 17:40:58 »
Код
$( "#save_setting" ).on( "click", function() {
это что? :)
Код
$( "body" ).on( "click", "#save_setting button", function() {
*

Joker

  • Захожу иногда
  • 235
  • 3 / 0
Re: Jquery обращение к элементам
« Ответ #7 : 28.08.2014, 17:53:05 »
Код
$( "#save_setting" ).on( "click", function() {
это что? :)
Код
$( "body" ).on( "click", "#save_setting button", function() {

спасибо что поправили. а вот как  получить  console.log($( "#setting_form" ).serialize()); всеравно возращает пусто
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Re: Jquery обращение к элементам
« Ответ #8 : 28.08.2014, 18:01:22 »
я же писал, попробовать заменить на
Код
console.log($(this).parents('form').serialize());
хотя по идее и так должно работать
*

fsv

  • Живу я здесь
  • 2765
  • 402 / 2
Re: Jquery обращение к элементам
« Ответ #9 : 28.08.2014, 20:45:44 »
Код: javascript
$("body").on("click", "#save_setting button", function() {
замените на
Код: javascript
$("body").on("click", "#save_setting", function() {

Цитировать
хотя по идее и так должно работать
формы при загрузке кода еще не было.
попробуйте
Код: javascript
console.log( $("#setting").find('#setting_form').serialize() );

Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Jquery обращение к элементам
« Ответ #10 : 28.08.2014, 23:40:08 »
 <input type="radio" name="accuracy" <?php if($accuracy==1){echo 'checked="checked"';}?> value="1"> Точно
      </label>
<label class="radio-inline">
   <input type="radio" name="accuracy" <?php if($accuracy==0){echo 'checked="checked"';}?> value="0"> Менее точно
</label>
выделил жирным и по ходу это ошибка одинаковое имя для полей можно использовать accuracy[]
Далее не старайтесь вешать события на body если есть id. Повесить проинициализировать после ответа можно
Код: javascript
$.post( "update_user.php",
$( "#setting_form" ).serialize(), //  у вас по сути одно поле {accuracy: $('input[name="accuracy"]').val())}
function(){
alert('Изменения сохранены');
$('#save_setting').on('click', function(){
console.log('ClickMe');
});
}
);
*

Joker

  • Захожу иногда
  • 235
  • 3 / 0
Re: Jquery обращение к элементам
« Ответ #11 : 29.08.2014, 05:12:01 »
ребят, я базовыми знаниями Jquery обладаю. но вот понять не могу почему не сробатывает
Код
console.log( $("#setting").find('#setting_form').serialize() );

возвращает пустую строку
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Re: Jquery обращение к элементам
« Ответ #12 : 29.08.2014, 10:35:34 »
ребят, я базовыми знаниями Jquery обладаю. но вот понять не могу почему не сробатывает
Код
console.log( $("#setting").find('#setting_form').serialize() );

возвращает пустую строку
1. Для начала мы не знаем структуры всего документа!
2. Зачем вы в блоке с ID setting ищите форму с id setting_form ?
Просто сразу console.log( $('#setting_form').serialize() );
*

fsv

  • Живу я здесь
  • 2765
  • 402 / 2
Re: Jquery обращение к элементам
« Ответ #13 : 29.08.2014, 14:46:07 »
но вот понять не могу почему не сробатывает
возвращает пустую строку
глупый вопрос: а форма после первого клика в DOM добавляется?
просто в
Цитировать
файл погрузки формы редактирования настроек setting_user.php
не вижу, чтобы HTML формы передавался какой-либо переменной, которую и вернет первый аякс-запрос

Действительно, без сайта с изменениями и полным кодом файлов-обработчиков как-то не очень ясно.
Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не работают cookies с jquery

Автор Night_Pilgrim

Ответов: 14
Просмотров: 1329
Последний ответ 06.05.2015, 18:48:56
от Aleks.Denezh
jquery в Joomla

Автор spirit1086

Ответов: 1
Просмотров: 855
Последний ответ 05.02.2015, 07:32:26
от Arkadiy
Обращение к БД

Автор Beton-Karton

Ответов: 5
Просмотров: 947
Последний ответ 24.11.2014, 22:32:53
от b2z
Подключить jquery

Автор Noraad

Ответов: 4
Просмотров: 1016
Последний ответ 03.11.2014, 15:30:13
от AlekVolsk
Jquery. $(document).ready(function(){}) в разных браузерах

Автор Виталик

Ответов: 0
Просмотров: 3718
Последний ответ 11.05.2009, 22:44:23
от Виталик