두 가지 선택 요소 A와 B가 있습니다. A가 선택한 옵션이 변경되면 B의 옵션도 그에 따라 업데이트되어야합니다. A의 각 요소는 B의 많은 요소를 의미하며 일대 다 관계입니다 (A는 국가를 포함하고 B는 주어진 국가에 위치한 도시를 포함해야 함).
함수 do_ajax
는 비동기 요청을 실행해야합니다.
function do_ajax(elem, mydata, filename)
{
$.ajax({
url: filename,
context: elem,
data: mydata,
datatype: "html",
success: function (data, textStatus, xhr) {
elem.innerHTML = data;
}
});
}
B의 옵션을 업데이트하기 위해 A의 onChange
이벤트 에 함수 호출을 추가했습니다 . 다음은 onChange 이벤트 (of A
)가 트리거 될 때 실행되는 함수입니다 .
function my_onchange(e) // "e" is element "A"
{
var sel_B = ... ; // get select element "B"
// I skipped some code here
// ...
var data = {
'mode': 'filter_city',
'id_A': e[e.selectedIndex]
};
do_ajax(city_sel, data, 'ajax_handler.php');
}
}
배열 (키 값 쌍)이 될 수있는 JQuery 문서 를 읽었습니다 data
. 다음과 같이 넣으면 오류가 발생합니다.
var data = {
'mode': 'filter_city',
'id_A': e[e.selectedIndex]
};
대신 데이터가 문자열이면 해당 오류가 발생하지 않습니다.
var data = 'mode=filter_city&id_A=' + e[e.selectedIndex];
하지만 서버 측 PHP 코드에서 변수의 "배열 버전"이 필요합니다.
은 Uncaught TypeError: Illegal invocation
내가 코드의 일부 오류를 제기 무엇인지 알아낼 수 있도록, 모두가 압축되어있는 "JQuery와-1.7.2.min.js"파일에 있습니다.
데이터를 연관 배열로 받아들이도록 코드에서 변경할 수있는 설정이 있습니까?