我是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 文件中检索该值。我也尝试使用this链接中建议的 SESSION ,但没有运气。有人可以让我知道我做错了什么吗?
答案 0 :(得分: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功能。这些函数使一个文件依赖于另一个文件,就像您直接将一个文件粘贴到另一个文件上一样。 使用这些函数传递变量不是一个好习惯。你应该使用Session
http://php.net/manual/en/function.require.php
顺便说一下,不要使用framesets
答案 1 :(得分:1)
您应该使用sessions并且不应该使用html框架集或iframe,这是一种不好的做法。如果您不想通过任何更改重新加载整个页面,则应使用javascript。
答案 2 :(得分:1)
您可以使用$_REQUEST
代替$_GET
,也可以将其用作:
<?php
if(array_key_exists('totalcolumns', $_GET)) {
$totalcolumns = $_GET['totalcolumns'];
echo "My next value should get printed";
echo $totalcolumns;
?>
这可以帮到你
答案 3 :(得分: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>