2012-04-06 101 views
1

我的网页允许用户从下拉列表中选择项目并有一个表格。 Javascript会在JavaScript创建的新表格行中打印出每个dropdown-list-item(加上javascript从XML文件中提取的额外信息)。php如何引用当前文档?

我希望能够将表信息写入磁盘。 如果我使用Javascript,我会使用document.getElementByID(“table”)来解析节点,并将该信息放入我可以编写的变量中。但是,我发现大多数文档都说Javascript不用于写入磁盘。所以,我认为我应该使用PHP。

什么是Javascript的'文档'对象的PHP等价物? 在Javascript中,我不需要定义任何新的对象来使用它,我可以随时使用'文档'。 我想在PHP中我必须使用新的DOMDocument。然后加载该html。

大部分的php例子显示loadHTML(string)和loadHTMLFile(); 我不想从我在标签内写入的字符串加载HTML。 而且我不想从.htm文件加载HTML,因为这是原始文件,而且Javascript已经根据用户的下拉菜单中的选择更改了用户的文件。

我想使用php访问当前文档的元素。 那么,php如何参考当前文档呢?

我正在浏览的网页是http://music.collwyncraig.info/hajimama/setlist.htm

+4

PHP不*运行在浏览器中。它经常运行在web服务器上,或作为独立程序运行。如果某个PHP程序可以获取网页,它可以解析并将其写入磁盘,但这与从浏览器中运行无关。 – wallyk 2012-04-06 06:46:50

+0

我想我开始明白这一点。那么,我可以使用什么来从浏览器中运行的页面(HTML DOM)获取信息并将其发回服务器,以便将其保存在服务器上的文件中? – collwyn 2012-04-06 07:16:13

回答

1

我觉得你对架构的想法是错误的。编程语言是如何相互交互的方式。

  • PHP是一种预处理,并产生 - U什么都想要 - 通常是HTML,包含JavaScript,CSS和什么...
  • JavaScript是在生成的HTML文件或ajax调用交互的动态语言即提供HTML,JavaScript中,CSS或任何需要的其他服务
  • 和HTML - 这是显示,并且可以在运行时通过JavaScript中使用CSS等风格的过程中被修改的文档对象...

所以当你打电话给你的文件的JavaScript函数 - 基本的PHP已经完成了它的工作。

不是将所有生成的内容从php直接打印到屏幕上,而是可以先将它存储在var中。

例如:

$myContent = "<html><head>...</head><body><h1>Whatever...</h1></body>"; 

所以用,你可以做以下打印在屏幕上:

print "myContent"; // and it is shown on the screen 

$myFile = "testFile.html"; 
$fh = fopen($myFile, 'w') or die("can't open file"); 
$myContent = "<html><head>...</head><body><h1>Whatever...</h1></body>"; 
fwrite($fh, $myContent); 
$myContent = "Whatever2"; 
fwrite($fh, $myContent); 
fclose($fh); 

所以你的文件的内容将是:

<html><head>...</head><body><h1>Whatever...</h1></body>Whatever2 

这个生成的文档然后可以调用loadHTML或以您想要的 想要的方式使用。

这只是暗示你可以思考的方向 - 有很多种解决方法 - 所以不知道更多关于你真正想要的东西 - 要提出一个合适的解决方案并不容易。

+0

谢谢。目前,用户可以通过从下拉菜单中选择项目来在我的网页上构建表格。 Javascript根据他们在下拉菜单中的选择构建这张表。我想要一个按钮,用户可以单击将其创建的表保存到文件中。 因此,我需要访问浏览器中当前页面的DOM,并将其发送回服务器并将其写入文件中。对? 我可以使用Javascript来访问浏览器中当前页面的DOM。我可以使用PHP将某些东西写入服务器上的文件中。我不知道如何连接这两个动作。 – collwyn 2012-04-06 07:23:53

+0

你想把它存储在服务器上?那么 - 如果你可以访问文档 - 那么只需通过参数存储它就像上面提到的那样将它的内容发送到一个php文件。 $ mycontent = $ _POST ['theDocument'] - 可以通过javascript由ajax调用。 – 2012-04-06 07:36:09

0

$_SERVER['SCRIPT_NAME']主文件。

__FILE__的完整路径这被称为文件。

PHP没有像jQuery那样的内置'DOM Manipulator - html输出通常是通过您选择的某个模板引擎或手动生成的。 如果你想DOM操作如jQuery,你可能会想尝试PHPQuery

http://code.google.com/p/phpquery/