제가 여기서 개발중인 사이트의 AJAX 호출이 현재 볼 수있는 페이지의 HTML 태그를 모두 반환하는 이상한 문제가 있습니다. 이 함수는 사용자가 선택한 주와 도시에 대한 데이터베이스에서 우편 번호를 반환해야합니다.AJAX 오류 : 응답은 현재 페이지의 html입니다.
나는 크로스 브라우저 호환성 개발을 쉽게하기 위해이 사이트에 폴 아일랜드어의 HTML5 상용구와 모더 나이저를 사용하고 있습니다. 이전에 문제없이 사용해 보았지만 HTML5 상용구가 사용하는 스크립트 중 하나와 JavaScript 충돌이 발생한다고 생각하기 시작했습니다.
다음은 JS있어 :
는function getCitiesFromState(state, select)
{
if (window.XMLHttpRequest)
{
x = new XMLHttpRequest();
}
else
{
x = new ActiveXObject("Microsoft.XMLHTTP");
}
var ran = Math.round((new Date()).getTime()/1000),
terms = "state="+state+'&r='+ran, loader;
x.open("POST", "inc/ajax/cities-from-state.php", true);
x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
x.onreadystatechange = function()
{
select == 'fcity'
? loader = 'fzip-loader'
: loader = 'tzip-loader';
$('#' + loader).show();
if (x.readyState==4 && x.status==200)
{
$('#' + select).html(x.responseText);
$('#' + loader).hide();
}
}
x.send(terms);
}
내가 jQuery를 광범위한 AJAX 기능을 가지고 알고,하지만 난 항상 쉽게하기 위해 라이브러리 또는 속기를 사용하기 전에 내 코드 뒤에있는 기반 기술을 이해하려고합니다. jQueryUI 함께 할 필요,
<?php
include 'db.class2.php';
$DB = new DB_MySql;
$DB->connect();
$state = $_POST['state'];
$q = $DB->query("
SELECT DISTINCT `city`, `zip_code`
FROM `usa_master`
WHERE `state` = '".addslashes($state)."'
GROUP BY `city`
ORDER BY `population` DESC LIMIT 0, 150"
);
$count = 0;
while($r = $DB->fetch_assoc($q))
{
$city[] = $r['city'];
$zips[$count] = $r['zip_code'];
if (4 == strlen($zips[$count]))
{
$zips[$count] = '0' . $zips[$count];
}
$count++;
}
array_multisort($city, $zips);
echo '<option value="" selected="selected">Select City</option>';
$size = sizeof($city);
for($x=0; $x<$size; $x++)
{
echo '<option class="city_list" value="'.$zips[$x].'">'.$city[$x].'</option>';
}
$DB->close();
?>
보조 노트에, 나는 때때로 내가 임의 jQuery를 관련 JavaScript 오류를 받고 있어요 (I 새로 고침 어쩌면마다 10 시간)에 주목하고 있습니다 : 여기
는 PHP의 datepicker 내가 사용하고있어. 나는 여기서 실종 됐다는 상관 관계가 있다고 생각하고있다.
호출되는 URL을 캡처하여 브라우저의 주소 표시 줄에 입력하고 얻은 결과를 확인하십시오. BTW : jQuery를 사용하는 경우 jQuery의 AJAX 핸들러 대신 XMLHttpRequest를 사용하는 이유는 무엇입니까? –
AJAX에 아직 새로운 ... -> jQuery에는 광범위한 AJAX 기능이 있지만, 라이브러리 또는 속기를 사용하기 전에 내 코드의 기본 기술을 더 쉽게 이해하려고 노력합니다. – k4t434sis
나는 대답을 숨길 것 같아 - x.open ("POST", "inc/ajax/cities-from-state.php", true); php ", 귀하의 페이지가 http://www.yourserver.com/ 및 cities-from-state.php가 http://www.yourserver.com/inc/ajax/cities-from-state.php에있는 경우 –