2012-07-27 46 views
0

我有我的文件夹中的2个PHP文件。在page1.php中,有一个文本,用户应在其中输入一些值。在使page2.php,会抢的是在文字区域和其计划工作。但是我找不到在textarea中获取值的命令。有人能帮我吗?ECHO textarea的page1.php中值到使page2.php

page1.php中:

<? 
$hello = "hello"; 
?> 
<html> 
<input type = "text" name = "user_input"> 
</input> 
</html> 

使page2.php

<? 
ob_start(); 
include 'page1.php'; 
ob_end_clean(); 
echo $hello; 
?> 

那么,有没有人能解决这个问题? =/

+0

其中是page1.php中的textarea? – asprin 2012-07-27 07:13:32

+0

这是一个坏代码的问题。在页面1中,您没有任何textarea,并且即使有一个输入,也没有可用于包装它的表单并设置活动/方法,也不需要提交按钮来实际发送它。在第2页上,您应该只有$ _GET ['variable_name']或$ _POST ['variable_name']来检索该值。最重要的是:当你不输出缓冲区时,为什么实际上在page2中包含page1(一个没有其他表单的页面)? – kawashita86 2012-07-27 07:22:40

+0

@ kawashita86我在page1.php中没有动作或方法的原因是因为我不能仅仅为page2.php使用它,因为我需要为page3.php和page4.php等使用相同的textarea。 。=/ – bajeanius 2012-07-27 08:44:24

回答

2

使用$_GET$_POST则page2.php中

page1.php中

<? 
$hello = "hello"; 
?> 
<html> 
<form method="get" action="page2.php" enctype="multipart/form-data"> 
<input type = "text" name = "user_input"> 
<input type="submit"> 
</form> 
</html> 

使page2.php

<? 
$text=$_GET['user_input']; 
ob_start(); 
include 'page1.php'; 
ob_end_clean(); 
echo $hello; 
echo $text; 
?> 
+0

在这种情况下,输出缓冲是多余的。 – 2012-07-27 07:36:29

+0

嗨Bhuvan Rikka,你的代码工作,但我不能让我的表单动作留在page2.php,因为这个文本框是为许多其他的PHP。 = /有没有什么可以帮忙的方法? =/ – bajeanius 2012-07-27 08:22:42

+0

@BhuvanRikka

动作部分,我可以不将它设置为page2.php,因为其他人需要相同的文本框php,page3.php和page4.php等的示例。 – bajeanius 2012-07-27 08:29:45

0

基本上你是page1.php中以某种形式在一个页面它与一个文本区域。现在用户必须填写并提交表单到page2.php。你不能回应它的内容,因为这将在浏览器受用户操作。使用表单并将数据提交给page2.php。就像这样:

page1.php中

<html> 
    <head> 
    </head> 
<body> 
    <form action="page2.php" method="post"> 
    <textarea name="t1"> 
    </textarea> 
    </form> 
</body> 
</html> 

使page2.php

<?php 
$textAreaContents = isset($_POST['t1'])?$_POST['t1']:''; 
echo "You submitted: ".$textAreaContents; 
?> 
+0

感谢您的回复,但我不能让行动被设置为“page2.php”,因为textarea是由其他php,例如page3.php page4.php等共享。 – bajeanius 2012-07-27 08:34:13

+0

你是指“textarea被其他页面共享”是什么意思? – Shades88 2012-07-27 09:36:59

+0

含义我需要为其他页面使用相同的textarea。就像用户输入一个值一样,这个值应该适用于page2.php或者page3.php或者page4.php,这意味着我不仅可以把它作为page2.php。 =/ – bajeanius 2012-07-27 09:50:50

1

您可使用$_GET['user_input']$_POST['user_input']

不同的是,你可以使用GET方法,而不是在其他的方法时,看到在URL中的数据(给大家可见)。

此外,始终使用<input>元件(其要传递到另一个文件)一个<form>内并指定action="file.php",到要传递数据,并且该方法,无论是method="get"method="post"或,等;

<form method="get" action="page2.php">

还指定抢在目标文件中的数据还的方法中,等;

$text=$_GET['user_input'];$text=$_POST['user_input'];

而在你的情况,你可以使用;

方法1

<?php 
$hello = "hello"; 
?> 
<html> 
<form method="get" action="page2.php"> 
<input type="text" name="user_input"> 
<input type="submit"> 
</form> 
</html> 

第2页。PHP

<?php 
$text=$_GET['user_input']; 
echo $text; 
?> 

方法2

<?php 
$hello = "hello"; 
?> 
<html> 
<form method="post" action="page2.php"> 
<input type="text" name="user_input"> 
<input type="submit"> 
</form> 
</html> 

使page2.php

<?php 
$text=$_POST['user_input']; 
echo $text; 
?> 

如果你想在多个页面共享数据,你可以做到这一点使用PHP会话或将数据保存在cookie中。

1.使用会话

<?php 
session_start(); 
$_SESSION['data'] = 1; // store session data 
echo "Pageviews = ". $_SESSION['data']; //retrieve data 
?> 

确保你要处理会话的每个页面上添加session_start();

您可以在此处详细了解PHP会话www.tizag.com/phpT/phpsessions.php/

2。使用Cookie

<?php 
setcookie("user", "Alex Porter", time()+3600); 
?> 

,并使用

echo $_COOKIE["user"]; 

retreive它你可以阅读更多关于PHP会议在这里http://www.w3schools.com/php/php_cookies.asp

希望这有助于... :)

+0

'$ text = $ _ GET ['user_input'];或$ text = $ _ GET ['user_input'];'使用相同的方法 – asprin 2012-07-27 07:50:45

+0

感谢兄弟..我纠正它.. – 2012-07-27 08:05:58

+0

嗨@blasteralfred,感谢您的答复,但是有可能不让我的表单留作为行动= page2 .PHP?因为这个文本框必须由其他php页面共享。 =/ – bajeanius 2012-07-27 08:29:16

0

如果我是你,我应该使用这个会话。那就是他们所在的地方..

例如:当用户点击提交。

<?php 
if($_SERVER['REQUEST_METHOD'] == 'POST') 
    { 
    $_SESSION['post'] = $_POST; 
    } 

这是每个帖子变量将被放入一个会话的地方。 和你的输入框会是这样的..

,你现在可以通过回声(例如)使用在你的形式使用每一个岗位可变
<textarea name="message" type="text" value="" rows="0" cols="0" placeholder="" ><?php if(isset($_SESSION['post'])){echo $_SESSION['post']['message'];} ?></textarea> 
?> 

echo $_SESSION['post']['message'] 

其中,消息是名字的输入框。在这种情况下的文本区域

不要忘记,当你不想使用会话结束时使用session_destroy();否则你会继续保持你的形式。并且不要忘记session_start();在您打算使用会话的每个页面上方(它必须始终位于文档的第一行)