2011-07-18 99 views
1

如何使用相同的文件PHP变量GET

在此示例页面不断刷新我从Javascript传递到PHP变量和我不明白看到的结果

它只能如果我分开脚本...但我需要它莫名其妙地喜欢上AJAX ..

<SCRIPT language="JavaScript"> 
var carname="Volvo"; 
location.href="http://localhost/put.php?Result=" + carname; 
</SCRIPT> 

,这是脚本的seccond部分(它们都在同一个文件)

<?php 
Id = $_GET[Result]; 
echo $dbId; 
?> 
+2

难道你不是通过将JavaScript重定向到重定向到重定向的同一页面的同一页面来创建无限循环吗?不管你的PHP代码的存在,是不是存在无限循环? –

+0

那么,只是使用Ajax不是一个选项? –

回答

1

正如布赖恩说你应该把它放在条件声明..也你的PHP是坏的。请尝试以下

<?php if(isset($_GET["Result"])) : ?> 

// do work with set variable 
<?php $dbID = $_GET["Result"]; 
    echo($dbID); ?> 

<?php else : ?> 
// "Result" not set 
<SCRIPT language="JavaScript"> 
var carname="Volvo"; 
location.href="http://localhost/put.php?Result=" + carname; 
</SCRIPT> 
<? endif; ?> 

我认为这是如果你想学习Ajax的方法,在现实世界中,我建议使用像jQuery框架一个很好的锻炼。当然了解它的工作原理将有助于您最终构建更好的应用程序。

+0

编辑:对不起得修复“<?php”在最后一行。 – NotCoffeeTable

+0

这将做到!谢谢,所以其实...这是如何得到从Java到PHP的变量? – Jabee

+0

这是一种方式......但这基本上是它可以完成的最基本的方式,并不常见。通常,您在服务器上有一个Javascript脚本,用于以异步方式发送请求。 这是一个向您介绍异步JavaScript请求的教程。 http://www.sematopia.com/2005/11/how-to-learn-ajax-in-10-minutes/ – NotCoffeeTable

-1

PHP仅在服务器上运行,并且JavaScript仅在客户端上运行。当你的客户端运行这个javascript时,就不会再有那个PHP被执行了。

+0

但是PHP代码会在“刷新屏幕”之前运行,并且查询字符串会附加到最后一个请求的JavaScript,所以它应该在第一次刷新后打印汽车名称。 –

+0

正确,但基本问题听起来像是对客户端/服务器交互和代码执行的误解。 –

0

你的问题是很难理解(至少对我来说)。我的猜测是,你是想用AJAX将数据发送到服务器并接收,而不必离开页面的响应。

可能做到这一点最简单的方法是使用一个库如jQuery。 (见jQuery.ajax()

+0

我认为你是对的... – Jabee

1

所以你可以做这样的事情在PHP脚本:

if (!isset($_GET['Result'])) 
{ 
    // include the javascript portion with the redirect 
} 

我与其他人,但 - 我没有看到一个页面加载之后的值立即重定向到同一页面。

0

男人,你应该遵循客户端 - 服务器模式。所以客户端页面可以使用一些AJAX来做出一个服务器页面的请求。这将响应客户端,您可以使用数据制作您想要的内容。

0
当然,这将保持清爽:)),因为只要浏览器获得的js代码,将会加载该页面你指定,将发送您的浏览器在同一页的

...你的想法。这就像写(;;){}

1

你正在尝试做无法做到的。您的脚本实时在客户端运行,但php会在请求期间在服务器上运行。您需要提出AJAX请求。

首先,您需要使用带有Firebug和Web开发人员工具栏的Firefox。 Firebug提供了ajax流量的绝佳视图,而Web开发者工具栏可帮助您查看页面中发生的情况。

使用jQuery做一个Ajax请求的值“送”到另一个PHP文件。不要害怕分离出文件,事实上它被鼓励并被认为是很好的编程。如果你发现你的信息发送到php脚本很多,你会想使用JSON而不是url的一部分。