2010-04-26 6 views
0

현재 MySql 데이터베이스의 문서 목록을 제공하는 웹 응용 프로그램에서 작업하고 있습니다. 목록의 각 문서에는 특정 문서를 여는 onclick 이벤트가 있지만이를 수행 할 수는 없습니다.JS 변수를 PHP 변수에 전달하는 방법

내 목록은 Ajax를 사용하여 popluated됩니다.

function stateChanged() 
    { 
if (xmlhttp.readyState==4) 
    { 
    //All documents// 
    document.getElementById("screenRef").innerHTML="<font id='maintxt'; name='title'; onclick='fileopen()'; color='#666666';>" + xmlhttp.responseText + "</font>"; 
    } 
    } 
} 

의 onclick = 제공 FileOpen 이벤트가 상기 파일을 다운로드 다음 코드 발췌 트리거 (JS) : 다음 코드 발췌 (JS) 인

function stateChanged() 
{ 
if (xmlhttp.readyState==4) 
{ 
    //Open file 
    var elemIF = document.createElement("iframe"); 
    elemIF.src = url; 
    elemIF.style.display = "none"; 
    document.body.appendChild(elemIF); 
} 
} 

}

마지막으로는, openfile onclick 이벤트는 다음과 같은 PHP 코드를 트리거하여 다운로드 할 파일 (php)을 찾습니다.

$con = mysql_connect("localhost", "root", "password"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
mysql_select_db("Documents", $con);  
$query = mysql_query("SELECT name, type, size, content FROM upload WHERE name = NEED JS VARIABLE HERE"); 
$row = mysql_fetch_array($query); 
header ("Content-type: ". $row['type']); 
header ("Content-length: ". $row['size']); 
header ("Content-Disposition: attachement; filename=". $row['name']); 
echo $row['content']; 

이 코드는 파일을 다운로드 할 때 잘 작동합니다. SQL 쿼리의 WHERE 부분을 생략하면 onclick 이벤트가 첫 번째 파일을 다운로드합니다. 어떻게 든 screenRef 요소 텍스트를 가져와 내 PHP 파일에서 읽을 수있는 변수로 변경해야합니다. 누구든지이 작업을 수행하는 방법을 알고 있습니까? 또한 페이지 새로 고침없이.

여러분의 의견에 진심으로 감사 드리며 미리 감사드립니다.

DFM

+0

dojo 나 jQuery와 같은 프레임 워크를 사용하는 것이 좋습니다. –

답변

2

당신은 서버 쪽 (PHP) 코드에서 클라이언트 측 (JS) 변수를 참조 할 수 없습니다.

다시 게시되는 쿼리 문자열 또는 양식 값에 포함하여 포스트에 표시 할 문서의 ID를 서버에 전달해야합니다.

+0

입력 해 주셔서 감사합니다. xmlHTTP.responseText를 변수 또는 다른 Ajax 특정 조건으로 변환하는 등 Ajax를 사용하여이 작업을 수행 할 수 있습니까? – user175328

+0

나는 당신이 이것에 대해 잘못 생각하고 있다고 생각합니다. AJAX는 여전히 클라이언트에서 실행됩니다. 보내 주신 내용은 서버 (PHP 코드)에 대한 쿼리 문자열을 통과 한 다음 PHP 코드가 처리되고 일반 html 페이지가 반환됩니다. 아약스 게시물 요청을 통해 원하는 것을 보내주십시오. –

관련 문제