안녕하세요 stackoverflow 개발자, 먼저 해결책을 찾지 못해서 미안하지만 지금은 잠시 노력해 왔습니다. AJAX 및/JSON에 대한 대안이있는 경우 내 접근 방식이 최선인지 확실하지 않으므로 언제든지 제안 해주십시오.AJAX JSON 결과 데이터에서 선택 목록 채우기
등록 된 사용자가 지역 및 주별 리조트, 레스토랑 및 관광 명소를 포함하는 관광 가이드 웹 사이트를 만들고 있습니다. 나는 Joomla를 사용하고있다! 및 Seblod (일부 사용자 정의 PHP, MySQL, Javascript 및 AJAX 사용). 27 개의 동적 선택을 수동으로 생성하고 싶지 않기 때문에 PHP/AJAX/JSON/JQuery를 사용하여 등록 된 해변 목록 (리조트 및 관광 명소와 관련되어야 함)을 선택하려고했습니다.
모든 것이 해변 목록을 채우는 것 외에는 작동하지만 문제가 무엇인지 알 수 없습니다. 추가, 생성 또는 옵션을 추가하는 여러 방법을 시도했지만 아무 일도 발생하지 않습니다. PHP의/JSON 결과는 다음과 같습니다
` [{"id":"17","title":"Porto+de+Galinhas"},{"id":"18","title":"Serrambi"},{"id":"19","title":"Tamandar%E9"}] `
그것은이 PHP 스크립트의 결과이다 :
` if($_GET['q'] == 'beaches'){ $praiaSQL = sprintf("SELECT * FROM vp_content AS c LEFT JOIN vp_cck_store_item_content AS v ON c.id = v.id WHERE c.catid = 10 AND v.cck = 'praia' AND v.venue_state = '%s' ORDER BY c.title ASC;", $_GET['s']); $query = mysqli_query($connection, $praiaSQL); $praia = array(); while($results = mysqli_fetch_assoc($query)){ array_push($praia, array('id' => $results['id'], 'title' => urlencode($results['title']))); } echo json_encode($praia); } `
나는 또한 악센트 문자를 처리 할 수있는 솔루션이 필요합니다. 여기에 urlencode를 시도하고 JQuery에서 디코딩하지만 문제가 될 수 있습니다. 원래 데이터로 남겨 두었을 때 악센트 부호가있는 문자가 있으면 결과 항목이 비어있었습니다.
` function setBeachList(x,u){ var theDiv = "#cck1r_" + x; var theSelect = "#" + x; $j(theSelect).children("option:not(:first)").remove(); $j.ajax({ url: u, contentType: "application/json;charset=UTF-8", success: function(data){ if(data.length){ /**** This is where I'm stuck, as I can't find a way to make sure the data is actually being treated/handled. I've tried alerts and all sorts of other options to populate the select. I know it's being called because the before: and after: functions are working. *****/ /* $j.each(data, function(k, v){ var o = new Option(); var newTitle = urldecode(v.title); $j(o).html(newTitle).val(v.id); $j(theSelect).append(o); }); */ var htm = ''; for (var i = 0; i '+urldecode(data[i].title)+''; } $j(theSelect).html(htm); } }, beforeSend: function(){ $j(theDiv).hide(); }, complete: function(){ $j(theDiv).show(); }, dataType: 'json', }); } `: -
이
는 (문제가 코드에서 어디 댓글을 달았습니다 u는 AJAX JSON 결과를 얻을 수있는 URL을 = X = 선택과) 결과를 처리하는 관련 JQuery와있다시간과 인내심을 가져 주셔서 감사합니다. 저는이 분야에서 전문가가 아닙니다 (정확하게 초보자는 아니지만 가까운 ...).