如何将JS变量传递给PHP变量

时间:2010-04-26 15:50:16

标签: php ajax variables

我正在开发一个Web应用程序,该应用程序当前提供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);  
 }
}

}

最后,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

1 个答案:

答案 0 :(得分:2)

您无法从服务器端(php)代码引用客户端(js)变量。

您需要将要在帖子中显示的文档的ID传递回服务器,方法是将其包含在回传的查询字符串或表单值中。