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

您可以使用$_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 回答
1

我会先识别帧,然后删除第二个的 src

<!DOCTYPE html>
<html>

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

然后更改 index.php 在末尾添加这段代码

<script>
parent.frames['f2'].location.href="slider.php?totalcolumns=3";
</script>

或者如果你的 php 中有 totalcolumns

<script>
parent.frames['f2'].location.href="slider.php?totalcolumns=<?php echo $totalcolumns;?>";
</script>
于 2013-10-01T21:29:53.977 回答
1

您应该使用会话并且不应该使用 html 框架集或 iframe,这是一种不好的做法。如果您不想通过任何更改重新加载整个页面,则应使用 javascript。

于 2013-10-01T21:14:40.640 回答