4

我必须使用...将数组值从一个 php 页面传递到另一个 php 页面<a href>...这是我的编码

$cluster是一个数组

echo "<td><a href=myebon.php&cluster[]=".$cluster.">Click here to OFF</a></td>";

myebon.php

$n=count($_GET[cluster]);
for($i=0;$i<=$n;$i++)
{
    echo $cluster[$i]=$_GET['cluster'][$i];
}

在第二页中无法访问该值,它显示为数组而不是值。我也尝试过序列化概念......

4

6 回答 6

7

这是清晰的示例代码

第一个.php

<?php
$Mixed = array("1","2","3");
$Text = json_encode($Mixed);
$RequestText = urlencode($Text);
?>
<a href="second.php?cluster=<?php echo $RequestText; ?>">Click</a>

第二个.php

<?php
$Text = urldecode($_REQUEST['cluster']);
$Mixed = json_decode($Text);
print_r( $Mixed);
?>

我已经检查过了,它工作正常。

于 2013-02-21T11:03:03.777 回答
5

使用http_build_query

$data = array('foo', 'bar', 'lol');

echo '<a href="myebon.php?' . http_build_query(array('cluster' => $data)) . '">link</a>';

输出

<a href="myebon.php?cluster%5B0%5D=foo&cluster%5B1%5D=bar&cluster%5B2%5D=lol">link</a>

它可以用 检索$_GET['cluster'],例如:

foreach ($_GET['cluster'] as $val) { 
    // my work here, example:
    echo $val , "\n";
}
于 2013-02-20T12:38:27.380 回答
1
$string = serialize($array);

然后传递字符串,在其他页面使用

$array = unserialize($string);

试试这个 :

echo "<td><a href=myebon.php&cluster=".serialize($cluster).">Click here to OFF</a></td>";
于 2013-02-20T12:30:28.290 回答
0

我建议你像下面这样传递数组:

//QueryString Variable
$qs = '';
foreach($cluster as $cl)
    $qs .= "&cluster[] =".$cl;

然后在链接构建中使用以下变量:

echo "<td><a href=myebon.php?a=1".$qs.">Click here to OFF</a></td>";
于 2013-02-20T12:40:30.543 回答
0

将 JSON_ENCODE 与 URLENCODE 一起使用

第一的

$Text = json_encode(array('foo', 'bar', 'lol'));
$RequestText =urlencode($Text);

然后

echo "<td><a href=myebon.php&cluster=".$RequestText.">Click here to OFF</a></td>";

二:myebon.php

$Text = urldecode($_REQUEST['cluster']);
$Mixed = json_decode($Text);

这将正常工作。

于 2013-02-20T12:46:41.130 回答
0

我的第一页的编码

$Text = json_encode($cluster);
$RequestText =urlencode($Text);
echo '<table>';
for($i=0;$i<$n;$i++)
{
 for($x=0;$x<=$c1;$x++)
 {
     if($cluster[$i]==$ebclus[$x])
     {    

         echo "<tr><td>".$cname[$i]."</td><td>".$cluster[$i]."</td><td>".$statusid[$x]."</td>";
         if($statusid[$x]==ON)
         {
             echo "<td><a href=myebon.php?&dept=".$dept."&branch=".$branch."&end=".$c1."&start=".$i."&cluster=".$RequestText.">Click here to OFF</a></td>";
         }  
         elseif($statusid[$x]==OFF)
         {
             echo "<td><a href=myebon.php?&dept=".$dept."&branch=".$branch."&end=".$c1."&start=".$i."&cluster=".$RequestText.">Click here to ON</a></td>";
         }
     }
 }   
}

myebon.php

$dept=$_GET[dept];

$branch=$_GET[branch];
$end=$_GET[end];
$start=$_GET[start];
$Text = urldecode($_REQUEST['cluster']);
$Mixed = json_decode($Text);
echo $Mixed;
for($i=0;$i<=$end;$i++)
{
    echo $Mixed[$i];
}

答案显示为 [\"73\",\"71\",\"73\"]

于 2013-02-21T09:45:35.460 回答