사용자는 액터 목록에서 액터를 클릭해야합니다. 기존 영화 제목이 제거 된 다음 선택한 배우와 관련된 영화 제목 만 표시됩니다.Json이 내 목록 상자에서 "정의되지 않은"값 가져 오기
내 "dvdtitle"목록 상자는 액터가 선택된 후 "정의되지 않음"목록을받습니다. 그러나 json_encode
에서 응답 데이터를 확인하여 시각적으로 보려면 $('#actor').text(data)
으로 입력하고 올바르게 입력하십시오.
[{"503":"Caught In The Crossfire"},
{"690":"Dead Man Running"},
{"1064":"Get Rich Or Die Trying"},
{"1145":"Gun"},{"1254":"Home of The Brave"},
{"2184":"Righteous Kill"},
{"2519":"Streets Of Blood"},
{"3273":"Twelve"}]
내가 뭘 잘못하고 있는지 알 수 없습니다.
//getactors.php
include("includes/connection.php");
$q = $_POST['input'];
$final_array = array();
$resultActor = mysql_query("SELECT id, title, plot, catagory, release_date, rated FROM dvd WHERE actors LIKE '%".$q."%' ");
while($rowActor = mysql_fetch_array($resultActor)) {
$final_array [] = array($rowActor['id'] => $rowActor['title']);
}
echo json_encode($final_array);
// JavaScript Document
$('#actorsname').click(function(){
var actorValue = $('#actorsname option:selected').text();
$.ajax({
type: "POST",
url: 'getactors.php',
data: {input: actorValue},
cache: false,
datatype: "json",
success: function(data) {
$('#dvdtitle option').each(function(i, option) {
$(option).remove(); // Empty DVD Listbox
});
$('#actor').text(data); // to visualy check my json Data
$.each(data, function(i, j) {
var row = "<option value=\"" + i.value + "\">" + j.text + "</option>";
$(row).appendTo("select#dvdtitle");
});
}
});
});
귀하의 질의는 [SQL injection] (http://en.wikipedia.org/wiki/SQL_injection)에 취약합니다. – paislee
당신은 물체가 아닌 현재 요소의 색인 인 i의 'value'속성을 요구하고 있습니다. – Dalen
@Dalen, 도움이 될만한 방법을 paislee에게 설명 할 준비를하십시오. – mowwwalker