PHP中如何将变量传到另一个PHP网页中,详情进来看下。

如上图所示,这些数据是同归API传到页面上foreach遍历出来的数据,如何将他的某个数据比如商品ID传到另一个网页上,下面我把我的循环代码发上来,求大神解决,注意不是数据库,是API,只有URL。

foreach($xml->results->products->product as $val){ echo "<div id='one'><div id='wai'><div id='left'><div id='img'><img src='".$val['image_url_large']."' height='200' width='250' /></div><p id='p'><b>$".$val['price_max']."</b></p><div id='name' class='divout'>".$val['name']."</div><div id='sub'><form action='dema.php' method='post'><input type='submit' name='det' value='Details' /></form></div></div></div></div>"; } }
我要做的就是点击下面的按钮进入到商品的详细页面,只要能将本商品的ID传过去就OK

一、用form表单中的hidden隐藏域。这种方法就是把待传递的变量用表单的方式再次传送,比如在用户登陆后,把他的信息如$username、$id等等信息用表单发送到下一张网页,当然,很多情况,是诸如text、option等等框体不想再被看到的话,可以采用隐藏的输入域。下面是一个实例,假设$username是经过上页为验证身份发送到本页并且在本页经过验证的变量,想传递到下一页中去,那么可以建立文件test4.PHP:
<?$username="张明";?>
<form method="post" action="test5.php">
<input type="hidden" name="username" value="<?echo $username?>">
<input type="submit" name="submit" value="看看">
</form>
test5.php:
<?echo "你好,$username,欢迎光临php自学网!";?>
打开apache服务器,输入http://127.0.0.1/test4.php在页面的按钮上点击,会发现新出的网页上$username的值已经传送过来了。
当然这种方法的弱点是很明显的,它还要再使用一个表单,而且在test5.php的网页上想要刷新的话还要重新发送,这显然是不太友好的。

二、使用session。后来,我查找了一些关于session的文章,觉得这时传递变量的一种非常好的方法。下面通过举例子来说明:
建立一个新文件test6.php:
<?session_start(); //初始化一个session
session_register("username"); //注册一个session变量
$username="张明"; //要传递的变量值
echo "<a href=test7.php>去看看</a>";
?>
test7.php:
<?session_start(); //初始化一个session
echo "你好,$username,欢迎光临php自学网!";?> //显示传递过来的变量
使用这种方法的时候要注意:<?session_start();?>应该放在文件的最前面,即"<?"前面不应有任何内容,包括空格,这是我调试多次未成功找出的原因。
这个变量只能在当前打开的浏览器中传递,若要在新打开的窗口中也能传递,刚要按下面的方法来做:
文件:test8.php
<?session_start();
session_register("username");
$username="张明";
echo "<a href=test7.php?$a=".session_id()." target=_blank>去看看</a>"; //将当前的session的id值传给下一个窗口。
?>
test7.php
<?session_start();
echo "你好,$username,欢迎你的光临!";?>

三,通过cookie
建立文件test9.php
<?SetCookie("username","张明");//把username设置到cookie中去
echo "<a href=test5.php target=_blank>去看看</a>";?>
文件test5.php
建立test5.php:
<?echo "你好,$username,欢迎你的光临php自学网!";?>
总结:以上只是一些常用的方法,还有很多的方法,如可以使用数据库,memcache等等.在此不做过多介绍.
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16

PHP中将变量传到另一个PHP网页中,可以通过这些方法:GET请求,POST请求,SESSION,缓存等,其中GET最简单,像阁下这个需求 只需要传ID过去,可以直接用GET请求。

实现方法如下,多余的代码我就不写了,我只写你循环中form表单里的代码:

"<form action='dema.php?id=".$val["id"]."' method='get'><input type='submit' name='det' value='Details'/></form>"

然后,数据就提交到dema.php去了,你再在dema.php里写这样的代码:

if(isset($_GET["id"]))//判断是否传了ID值过来
    $id = $_GET["id"];//将ID值赋值给变量$id

然后就根据ID处理后续页面了

本回答被提问者和网友采纳
第2个回答  2014-09-19
   foreach($xml->results->products->product as $val){
  
         echo "<div id='one'><div id='wai'><div id='left'><div id='img'>
         <img src='".$val['image_url_large']."' height='200' width='250'/>
         </div>
         <p id='p'><b>$".$val['price_max']."</b></p><div id='name' class='divout'>".            $val['name']."</div>
         <div id='sub'>
            <input 
            type='button' name='det' value='Details' onclick='document.href="dema.php?id=$val['id']"'/></div></div></div></div>";
        }
    }

第3个回答  2014-09-19
点击的时候提交一个表单,设置一个隐藏域
<input type="hidden" name="id" value="id值" />