Jump to content
  • 0

Совместить данные (jquery)


slo_nik
 Share

Question

Добрый вечер.

помогите, пожалуйста, доделать скрипт.

для выпадающего списка получаю данные(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);
)}

и вот как это сделать не знаю.

подскажите как решить эту задачу?

заранее благодарю откликнувшихся.

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

можно больше кода?? с использованием $.getJSON??


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);
}

Edited by slo_nik
Link to comment
Share on other sites

  • 0

попробовал использовать 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, так как он там лишний ))) только вводит в заблуждение

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy