PHP-将变量从一个PHP文件传递到另一个PHP文件
我是PHP新手,尝试将变量从一个页面传递到另一个页面。最初,我有一个HTML页面,其中包含如下框架PHP-将变量从一个PHP文件传递到另一个PHP文件,php,Php,我是PHP新手,尝试将变量从一个页面传递到另一个页面。最初,我有一个HTML页面,其中包含如下框架 <!DOCTYPE html> <html> <frameset cols="70%,*"> <frame src="index.php"> <frame src="slider.php"> </frameset> </html> <?php $names = file('demo.csv');
<!DOCTYPE html>
<html>
<frameset cols="70%,*">
<frame src="index.php">
<frame src="slider.php">
</frameset>
</html>
<?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>
如上所述,我有两个PHP页面,其中我试图将一些值从index.PHP文件发送到我的slider.PHP文件。我的index.php文件如下所示
<!DOCTYPE html>
<html>
<frameset cols="70%,*">
<frame src="index.php">
<frame src="slider.php">
</frameset>
</html>
<?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文件中的值。我还尝试使用链接中建议的会话,但没有成功。有人能告诉我我做错了什么吗?您应该使用html框架集或iFrame,但不应该使用,这是一种不好的做法。如果您不想通过任何更改重新加载整个页面,您应该使用javascript。您应该能够使用$\u会话。这是:
$_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函数。这些函数使一个文件依赖于另一个文件,就像您直接将一个文件粘贴到另一个文件一样。
使用这些函数传递变量不是一个好的做法。您应该使用会话
顺便说一句,不要使用框架集您可以使用
$\u REQUEST
而不是$\u GET
,或者将其作为:
<?php
if(array_key_exists('totalcolumns', $_GET)) {
$totalcolumns = $_GET['totalcolumns'];
echo "My next value should get printed";
echo $totalcolumns;
?>
这可能会帮助您我会先识别帧,然后删除第二个帧的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>
parent.frames['f2'].location.href=“slider.php?totalcolumns=3”;
或者,如果您的php中有totalcolumns
<script>
parent.frames['f2'].location.href="slider.php?totalcolumns=<?php echo $totalcolumns;?>";
</script>
parent.frames['f2'].location.href=“slider.php?totalcolumns=”;
一个与安全相关的方面:输出时应转义GET变量totalcolumns:echo htmlspecialchars($totalcolumns)
我猜您的问题是您不确定哪个是第一个调用,您可能希望避免一起使用框架,因为PHP+JavaScript组合能够以可访问的方式替换它们。。顺便说一句:P@Gar,我想这可能就是问题所在。你知道我如何解决这个问题吗?谢谢主要问题是框架。时期世界在前进。通过ajax和适当的回调,您的问题很容易解决。是的,我想我可以使用会话。然而,正如@Gar指出的,系统不知道首先调用哪个PHP文件。我不知道如何解决这个问题,因为我正在使用HTML框架为这两个PHP文件同时创建两个单独的框架。正如我所说的不要使用框架,它们不能满足您的需要。使用单个html页面,而不是包含index.php和slider.php文件数据的页面。