4

私はPHPが初めてで、あるページから別のページに変数を渡そうとしています。最初に、以下のようなフレームを含む HTML ページがあります。

<!DOCTYPE html>
<html>

<frameset cols="70%,*">
  <frame src="index.php">
  <frame src="slider.php">
</frameset>
</html>

上記のように、2 つの PHP ページがあり、index.phpファイルからいくつかの値をslider.phpファイルに送信しようとしています。私のindex.phpファイルは以下の通りです。

<?php
$names = file('demo.csv');
$page = $_GET['page'];
$pagedResults = new Paginated($names, 20, $page);
$handle = fopen('demo.csv', 'r');
  if (($data = fgetcsv($handle, 1000, ',')) !== FALSE)
    {
    }
echo "<table border='3' bgcolor='#dceba9' style='float:center; margin:50'>";
echo '<tr><th>'.implode('</th><th>', $data).'</th></tr>';
while ( $row = $pagedResults->fetchPagedRow())
{
    echo "<tr><td>";
    $row1 = str_replace( ',', "</td><td>", $row );
    echo $row1;
    echo "</td></tr>";
}
fclose($handle);
echo "</table>";
//important to set the strategy to be used before a call to fetchPagedNavigation
$pagedResults->setLayout(new DoubleBarLayout());
echo $pagedResults->fetchPagedNavigation();
?>
<form method="get" action="slider.php">
    <input type="hidden" name="totalcolumns" value="3">
    <input type="submit">
</form>

これは私のslider.phpファイルです。

<?php 
      $totalcolumns = $_GET['totalcolumns'];
      echo "My next value should get printed";
      echo $totalcolumns;
?>

  <input type="text" data-slider="true" data-slider-range="100,500" data-slider-step="100">
</html>

上記のように、「totalcolumns」という名前の値を取得しようとしています。ただし、slider.phpファイルの値を取得できません。このリンクで提案されているようにSESSIONも使用してみましたが、うまくいきませんでした。誰かが間違っていることを教えてもらえますか?

4

4 に答える 4

3

$_SESSION を使用できるはずです。これは:

$_SESSION['totalcolumns'] = $columns --> your value here in the first script

your value will be stored in the $columns variable in the second 
 $columns = $_SESSION['totalcolumns'] 

require または include 関数を確認することもできます。これらの関数は、あるファイルを別のファイルに依存させます。あたかもあるファイルを別のファイルに直接貼り付けたかのようです。これらの関数で変数を渡すことはお勧めできません。セッションを使用する必要があります

http://php.net/manual/en/function.require.php

ところで、フレームセットを使用しないでください

于 2013-10-01T21:16:38.080 に答える
1

セッションを使用する必要があり、html フレームセットまたは iframe を使用しないでください。これは悪い習慣です。変更によってページ全体をリロードしたくない場合は、javascript を使用する必要があります。

于 2013-10-01T21:14:40.640 に答える
1

$_REQUEST次の代わりに、$_GETまたは次のように使用できます。

<?php
if(array_key_exists('totalcolumns', $_GET)) {
      $totalcolumns = $_GET['totalcolumns'];
      echo "My next value should get printed";
      echo $totalcolumns;
?>

これはあなたを助けるかもしれません

于 2013-10-01T21:21:01.707 に答える