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

HTML+CSS+JavaScript

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

 

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

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

тема: Совместить данные (jquery)
 
 автор: Slo_Nik   (23.05.2011 в 01:19)   письмо автору
 
 

Добрый вечер.
помогите, пожалуйста, доделать скрипт.
для выпадающего списка получаю данные(id и name) с сервера при помощи $.getJSON
формирую элементы выпадающего списка

var option = '';
$(result.section).each(function(){
 option += '<option value=\"' + $(this).attr('name') + '\">' + $(this).attr('name') + '</ option>';
});
$("#section").html(option).attr('disabled', false);
/* теперь, в зависимости от выбранного option в скрытый input надо подставить соответствующее значение id */
$("#section").change(function(){
 input = '<input id="id" type="text" name="id" value="' + ??? +'" />';
$("#section").after(input);
)}

и вот как это сделать не знаю.
подскажите как решить эту задачу?
заранее благодарю откликнувшихся.

  Ответить  
 
 автор: cheops   (23.05.2011 в 07:54)   письмо автору
 
   для: Slo_Nik   (23.05.2011 в 01:19)
 

Хм... так в option у вас вроде как и нет id, только name?

  Ответить  
 
 автор: Slo_Nik   (23.05.2011 в 09:33)   письмо автору
 
   для: cheops   (23.05.2011 в 07:54)
 

правильно, в option я подставил только name, id у меня в $(this).attr('id') и вот этот id мне надо подставить в скрытый input, который располагается сразу за select.
вот более полный участок кода

<script type='text/javascript'>
...........................................................
if(table != "Выберите раздел."){
 $("#section").attr('disabled', true);
  $("#section").html("<option> идёт загрузка...</ option>");
   var url = "http://localhost/newsite/confiles/action/subsection.php";
    $.getJSON(
     url,
     {"table" : encodeURI(table), "author" : encodeURI(author)},
      function(result){
       if(result.type == 'error'){
        $("#section").html("").attr('disabled', true);
        return (false);
       }
       else{
        var option = '';
        var input = '';
        option += '<option>Выбирите подраздел.</ option>';
        $(result.section).each(function(){
         /* $(this).attr('id'); */
         option += '<option id=\"cc\" value=\"' + $(this).attr('name') + '\">' + $(this).attr('name') + '</ option>';
        });
        /* готовый select */
        $("#section").html(option).attr('disabled', false);
        /* в зависимости от выбранного input подставить соответствующее значение id в input */                  
        $("#section").change(function(){
                                
         $(this).next("#id").remove();
        /* вот в этот input надо подставить id, который находится в $(this).attr('id') */                       
         input = '<input id="id" type="text" name="id" value="' + ???? +'" />';

         $("#section").after(input);
        
                                 
        })
       }
      }
     );/* завершение .getJSON  */
     }
     else{
       $("#section").html("").attr('disabled', true);
     }
</script>

p.s. извините за неточность в вопросе

  Ответить  
 
 автор: cheops   (23.05.2011 в 12:18)   письмо автору
 
   для: Slo_Nik   (23.05.2011 в 09:33)
 

Хм... что-то еще меньше понятно стало, вот я в option вижу id=\"cc\", т.е. каждому элементу выпадающего списка присваивается один и тот же id?
Что в конечном итогде должно попасть в поле input? Выбранный текст или его идентификатор из JSON?

  Ответить  
 
 автор: Slo_Nik   (23.05.2011 в 14:21)   письмо автору
 
   для: cheops   (23.05.2011 в 12:18)
 

попробую объяснить более понятней.
получаю данныe при помощи $getJSON, в строке уже есть name и id, name я подставляю в выпадающий список, а id мне надо подставить в скрытый input , при этом надо совместить так, что бы в input попал тот id , который принадлежит name.
получается, что сформировался список имён, выбирается имя и id этого имени нужно подставить в input , выбирается другое имя - id в input меняется на соответствующее.
далее данные заносятся в базу данных.

  Ответить  
 
 автор: Slo_Nik   (23.05.2011 в 17:19)   письмо автору
 
   для: cheops   (23.05.2011 в 12:18)
 

> Выбранный текст или его идентификатор из JSON?

именно это и должно попасть

  Ответить  
 
 автор: Slo_Nik   (24.05.2011 в 01:08)   письмо автору
 
   для: cheops   (23.05.2011 в 12:18)
 

попробовал использовать data(), думал, что при выборе пункта выпадающего списка сравнивать value со значением в data, но так ни чего не получилось.
вот, что я наворотил

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

option += '<option>Выбирите подраздел.</ option>';
 $(result.section).each(function(){

  option += '<option  value=\"' + $(this).attr('name') + '\">' + $(this).attr('name') + '</ option>';
                 
   e[j] = [$("#section").data("data", {name : $(this).attr("name"), id : $(this).attr("id")})];
                 
   j++;
 });
$("#section").html(option).attr('disabled', false);
                
$("#section").change(function(){
  $(this).next("#id").remove();
                  
    $.each(e, function(key, value){
       alert(key + "-" + ($("#section").data("data").id + "-" + $("#section").data("data").name));
     });

    /*  ВОТ В ЭТОТ INPUT НАДО ПОДСТАВИТЬ ID Из JSON */

      input = '<input id="id" type="text" name="id" value="' +/*  $(this).data("id")  */+'" />';

        $("#section").after(input);
                 
 })
................................................

в массиве все элементы содержат одно и тоже значение.
как же всё таки решить задачу, что я делаю не так?

p.s. убрал атрибут id из option, так как он там лишний ))) только вводит в заблуждение

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

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