2012-07-31 2 views
0

데이터베이스에서 드롭 다운을 시도합니다. 쿼리 결과를 배열에 추가합니다. 그런 다음 json_encode를 사용하여 데이터를 PHP 파일로 보냅니다. 내 PHP 파일에서 sqlite3의 배열에 추가하고 json과 jquery ajax를 전달하십시오.

$query="SELECT project FROM main"; 
$results = $db->query($query); 
while ($row_id = $results->fetchArray()) { 
     $proj_option[] = "<option value=\"".$row_id['project']."\">".$row_id['project']."</option>\n"; 
     $pselected=$row_id['project']; 
} 
$output = array("proj" => $proj_option); 
echo json_encode($output); 

, 나는 드롭 다운을 채우기 위해 JQuery와 아약스를 사용합니다.

$("#turninId").change(function() { 

    var user_id = $("#turninId").val(); 

    $.ajax ({ 
     url:"send_input.php", 
     type: "POST", 
     dataType: "json", 
     data:{id_selection: user_id}, 
     success:function(response) { 

     for (var i=0; i<response.proj.length; i++) { 
      $("#exp").html(response.proj[i]); 
      $("#project").html(response.proj[i]); } }); 

}); 

이것은 훌륭하지만, 내 드롭 다운의 유일한 항목은 db의 마지막 항목입니다. ". 바로"

Project: up, down, low, right 

하지만 내 드롭 다운 마지막 항목으로 채워 예를 들어, 내 데이터베이스 프로젝트에서 다음이 왜 이런거야? 어떻게 해결할 수 있습니까?

PHP json_encode() in while loop도 비슷하지만 변경된 사항이 있지만 여기에 누락 된 것이 있습니다.

답변

1

이뿐만 아니라 일

success:function(response) { 

    $.each(response.proj,function(key,value){ 
     $("#exp").append(value); 
     $("#project").append(value); 
    }); 

} 
+0

append를 사용하면 정확히 내가 필요한 것입니다! 감사 – hereiam

0

자바 스크립트의 루프를 반복 할 때마다 HTML을 덮어 씁니다. .html() 메소드는 태그의 innerHTML 특성을 설정하므로, 호출 할 때마다 html을 재설정하고 마지막 태그 만 표시합니다.

$("#exp").html(response.proj.join('')); 
$("#project").html(response.proj.join('')); 
+0

이 :) 주셔서 감사합니다 시도 할 수있다 대신 함께은 응답에 참여, 루프를 사용하지 않도록 노력하고 .html 중에서()를 호출! – hereiam

관련 문제