Как передать переменную JS в переменную PHP - PullRequest
0 голосов
/ 26 апреля 2010

Я работаю над веб-приложением, которое в настоящее время предоставляет список документов в базе данных MySql. Каждый документ в списке имеет событие onclick, которое предполагает открытие определенного документа, однако я не могу этого сделать.

Мой список пополняется с помощью Ajax. Вот выдержка из кода (JS):

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):

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

}

Наконец, событие onclick openfile запускает следующий 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'];

Этот код хорошо работает для загрузки файла. Если я опущу часть WHERE в запросе Sql, событие onclick загрузит первый файл. Почему-то мне нужно получить текст элемента screenRef и изменить его на переменную, которую может прочитать мой php-файл. Кто-нибудь знает как это сделать? Также без обновления страницы.

Я очень ценю отзывы всех и заранее благодарю.

DFM

1 Ответ

2 голосов
/ 26 апреля 2010

Нельзя ссылаться на переменную на стороне клиента (js) из кода на стороне сервера (php).

Необходимо передать идентификатор документа, который будет отображаться в записи, обратно на сервер, включив его в строку запроса или значения формы, которые отправляются обратно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...