2014-12-05 3 views
1

저는 얼마 동안 PHP를 사용해 왔습니다. 방금 JSON을 사용하는 방법을 배우기 시작했습니다.옵션 값에 JSON 추가

JSON을 반환하는 PHP 파일을 만들 수있었습니다. 내 주요 파일에서 PHP 파일을 참조하고 JSON 객체를 가져옵니다.

I는 다음과 같이 드롭 다운 선택 메뉴에서 개체를 표시 할 수 있습니다

$.getJSON("folder/services.php", function(data) 
{ 
    $.each(data, function(index, item) 
    { 
    $('#service').append($("<option>" + item.SERVICE + "</option>")); 
    }); 
}); 

위의 코드는 잘 작동합니다. 드롭 다운 SELECT 옵션에 SERVICE 값을 표시 할 수 있습니다.

내가 알아 내려고하는 것은 SERVICE를 OPTION의 VALUE로 가져 오는 방법입니다. 나는 그것이 올바르게 말하고 있기를 바란다.

<option value="SERVICE_A">Service A</option> 
<option value="SERVICE_B">Service B</option> 
... 

을하지만 JSON을 사용하고 있기 때문에, 나는 OPTION에 값을 얻는 방법을 잘 모르겠습니다 :

일반적으로, OPTION 태그는 다음과 같이 보일 것이다.

JQuery에서 PHP를 사용하려고했지만 실패했습니다. 내가 시도 무엇을 보여주지 :

$('#service').append($("<option value='".+ item.SERVICE +."'>" + item.SERVICE + "</option>")); 

****** 편집 ******

나는 아래 LShetty에 의해 제출 된이 코드 조각을 시도 :

$.getJSON("folder/services.php", function(data) 
{ 
    var strToAppend = ""; 
    $.each(data, function(index, item) 
    { 
    strToAppend += $("<option/>", 
    { 
     'value': item.SERVICE, 
     'text': item.SERVICE 
    }); 
    }); 
    $('#service').append(strToAppend); 
}); 

이 코드는 비어 있습니다. 누구든지 내가 뭘 잘못했는지 알아?

+0

을하는 데 도움이

var strToAppend = ""; $.each(data, function(index, item) { strToAppend += $("<option/>", { 'value': item.SERVICE, 'text': item.SERVICE }); }); $('#service').append(strToAppend); 

희망은 내가 문제를 참조하십시오. 추가를 확인하십시오. 따옴표가 잘못되었습니다. "" – Orpheus

답변

3

당신은 올바른 길을 가고 있습니다. 하지만 JS에서 concatentation에 .을 사용하지 마십시오. 그것은 PHP의 것입니다. 그리고 .+은 어느 언어에서도 작동하지 않습니다.

이 할 수있는보다 안전하고 jQuery를 흉내 방법은 (", ', < 등이 SERVICE 값에 존재 때 작동합니다) :

$('<option>'). 
    attr('value', item.SERVICE). 
    text(item.SERVICE). 
    appendTo($('#service')); 
+0

고급 코드에서는 $ ('

+0

위 코드를 사용하면 2 가지 질문이 있습니다. One ... OPTION 태그에 닫는 OPTION 태그가 있어야합니까? 둘째, 다른 드롭 다운 목록에 appendToTo를 추가하려면 어떻게해야합니까? 제발 조언. –

+0

1. 아니요. 첫 번째 행은 완전한 옵션 태그를 만든 다음 속성과 텍스트를 추가합니다. 2. 다른 드롭 다운에 추가하려면 해당 목록의 'id'를 대신 사용하십시오. 이리스트에 *와 *를 덧붙이고 싶다면 마지막 세미콜론을'.clone(). appendTo ($ ('# someotherlist')); ' –

0

바울은 위의 답을 가지고있다. 이는 더 많은 최적화 작업입니다. 루프에서 DOM을 수정하는 것은 비용이 많이 든다! 나는이 2 가지 항목을 보았기 때문에이 특별한 질문에는 괜찮을 것이다. 따라서 항상 루프 외부에서 문자열을 구성하고 준비가되면 즉시 추가하십시오. :)

+0

고마워. 나는이 방법을 시도 할 것이다. –

+0

같은 질문 당신의 방법을 사용하여 Paul Roub에게 물어 보았습니다. 동일한 객체와 값을 다른 드롭 다운 목록에 추가하는 방법은 무엇입니까? 제발 조언. –

+0

Paul과 같은 대답 :) $ ("# yourID1, # yourID2, .yourClass"). append (strToAppend); – lshettyl