2010-07-01 2 views
0

나는 기본적인 AJAX/php 테스트를 시도하고있다. 두 개의 입력 텍스트 필드가있는 양식이 있는데 두 개의 값을 입력하고 출력 텍스트 필드는 버튼을 누를 때 입력 필드가 서로 연결되어 세 번째 텍스트 필드로 출력됩니다. 나는 AJAX/PHP를 통해 이것을하고있다. 세 번째 필드에 연결된 값 출력이 표시되지만 responseText에 추가 된 텍스트가 PHP에서 다시 가져 오는 것 같습니다. 추가 된 텍스트는 웹 서버의 호스트 이름과 타임 스탬프가있는 HTML 주석 (< -)입니다. 이걸 어떻게 없앨까요? responseText가 responseText 문자열에이 추가 정보를 가지고 돌아 오는 것이 정상입니까?responseText에 호스트 이름과 타임 스탬프가 추가 된 이유는 무엇입니까?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>AJAX/PHP Test</title> 

</head> 
<body> 

<script language="javascript" type="text/javascript"> 
// Get the HTTP Object 
function getHTTPObject(){ 
    if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP"); 
    else if (window.XMLHttpRequest) return new XMLHttpRequest(); 
    else { 
     alert("Your browser does not support AJAX."); 
     return null; 
    } 
} 

// Change the value of the output field 
function setOutput() { 
    var val; 
    val=""; 
    if (httpObject.readyState == 4) { 
    val=httpObject.responseText; 
    if (val != undefined) { 
     document.getElementById('outputFld').value = val; 
    } 
    } 
} 

// Implement business logic 
function doWork(){ 
    var url; 
    httpObject = getHTTPObject(); 
    if (httpObject != null) { 
     httpObject.onreadystatechange = setOutput; 
     url="concat.php?inputText="+document.getElementById('inputFld1').value+"&inputText2="+document.getElementById('inputFld2').value; 
     httpObject.open("GET", url, true); 
     httpObject.send(null); 
    } 
} 

var httpObject = null; 

</script> 
This is a test page to see how to get ajax and php to work together when submitting a form with data. 

<P> 

First we have a simple form. The php will be called when the button is pressed and will concatenate 
"Input 1" and "Input 2" and write the output to the "Output" field. <P><P> 


</body> 

<form> 
    Input 1: <input type="text" id="inputFld1" size="50" /><br> 
    Input 2: <input type="text" id="inputFld2" size="50" /><br> 
<HR> 
    Output: <input type="text" id="outputFld" size="100" /><br> 
<P> 
    <input type="button" name="submitButton" value="Concatenate" onClick="doWork()" /> 


</html> 

와 PHP가 OPEN 호출 (concat.php)와 URL에 호출되는 다음과 같습니다 :

PHP는/HTML 페이지는 다음과 같습니다

<?php 
    $in1 = $_GET['inputText']; 
    $in2 = $_GET['inputText2']; 
    $returnvar = $in1 . ' - ' . $in2; 
    echo $returnvar; 
?> 

은 무엇 가져 responseText에서 다시 전달되었습니다 (두 개의 입력 필드에 "ONE"및 TWO "라고 말한 경우 :

ONE - TWO<!-- webserver1.thedomain.com compressed/chunked Thu Jul 1 15:42:08 PDT 2010 --> 

" 댓글을 responseText에 추가 했습니까?

답변

2

일부 구성 (PHP, apache ...)에서 "auto append file"범위의 설정이 활성화되어있을 수 있습니까? 또는 웹 서버 또는 사용중인 일부 확장이 문자열을 추가하는 원인 일 수 있습니까?

나는 빠른 검색을 수행했지만 문자열에 대한 실제 참조를 찾을 수 없습니다. 필자가 얻은 대부분의 언급은 사람들이 다른 야후 서비스에서 얻은 응답을 가리키고 있습니다.

+0

나는 당신이 옳을 수도 있다고 생각합니다. 여기에는 PHP 나 아파치에 대한 특별한 설정이있을 것입니다. – GregH

+0

질문에 관해서는 "어떻게 없앨 수 있습니까?": 그냥 html로 페이지에 추가하면 그 주석이 달려 있습니다. 그렇지 않으면 일부 JS "주석 제거"정규식 마법이 도움이 될 수 있습니다 : http :// /www.w3schools.com/jsref/jsref_obj_regexp.asp –

0

나는 이것을 달렸다. 예상했던대로 날짜와 도메인이 없어도 작동했다.

왜 jQuery, Moo Tools 또는 Prototype과 같은 AJAX 지원을 사용하지 않으시겠습니까?

관련 문제