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];
}

2 番目のページでは値にアクセスできません。配列として表示されますが、値は表示されません。私も連載のコンセプトを試してみました...

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>

second.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

URLENCODE で JSON_ENCODE を使用する

初め

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

それで

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

2番目: 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 に答える
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 に答える