YUI 서식있는 텍스트 편집기를 사용하고 입력 한 텍스트를 데이터베이스에 저장하고 있습니다. 사용자는 여러 텍스트를 입력 할 수 있기 때문에 드롭 다운을 사용하여 편집 할 기존 데이터베이스 항목을 선택하거나 새 항목을 만들 수 있습니다. 이렇게하려면 AJAX를 처리하는 JS 함수를 호출하고이를 사용하여 데이터베이스에서 정보를 가져온 다음 반환 된 정보를 표시합니다. 라고PHP에서 Javascript가 AJAX를 통해 호출되지 않았습니다.
PHP 코드입니다 : 나는 오류가 발생하지 않습니다 선택 상자를 변경하고 방화범은 AJAX가 (POST 200 OK) 성공했음을보고하고 할 때
$query = "SELECT * FROM tableName WHERE id='".mysql_real_escape_string($_POST['id'])."'";
$result = mysql_query($query) or die(mysql_error());
$data = mysql_fetch_assoc($result);
echo "<script type='text/javascript' language='JavaScript'>
alert('HEY HEY HEY'); //Just to see if JS is happening at all
document.getElementById('saveName').innerHTML = '$data[name]';
document.getElementById('editor').innerHTML = '$data[content]';
document.getElementById('editID').value = '$data[id]';
</script>";
응답 내가 기대하는 것입니다 :
<script type='text/javascript' language='JavaScript'>
alert('HEY HEY HEY');
document.getElementById('saveName').innerHTML = 'Default';
document.getElementById('editor').innerHTML = 'REALLY LARGE BLOB OF TEXT';
document.getElementById('editID').value = '1';
</script>
경고는 발생하지 않으며 내부 HTML은 변경되지 않습니다. AJAX에 의해로드 된 PHP 페이지에서 이와 같이 javascript를 호출 할 수 있습니까? 그런 다음 콜백 페이지 (가정 JQuery와)에
$query = "SELECT * FROM tableName WHERE id='".mysql_real_escape_string($_POST['id'])."'";
$result = mysql_query($query) or die(mysql_error());
$data = mysql_fetch_assoc($result);
$json = array('data' => "$data");
echo json_encode($json);
:
응답 텍스트에서 ''태그를 제거해보십시오. ajax 콜백의 반환을 평가하는 경우에는 필요하지 않아야합니다. – 65Fbef05
AJAX 요청 및 응답을 처리하는 JS는 무엇입니까? –
또한,'eval()'에서 줄 바꿈은 아마도'unterminated string literal'이라는 에러를 던질 것입니다 - 리턴하기 전에 줄 바꿈을 제거하십시오. – 65Fbef05