2012-11-09 29 views
0

如何在第一次运行PHP变量时第二次使用存储在我的PHP变量中的相同值执行PHP脚本?重新运行PHP脚本时不会丢失存储在变量中的值

例如:
HTML:

<html> 
<body> 
<form method="post" action="php\test.php"> 
<input type="text" name="length" /> 
<input type="submit" value="Run again!" /> 
</form> 
</body> 
</html> 

PHP \ test.php的:

<html> 
<body> 
<?php 
$length = $_POST['length']; 
echo $length; 
?> 
<form method="POST" action="php\test.php"> 
<input type="submit" value="Run again!" /> 
</form> 
</body> 
</html> 

如何使按钮再次运行该脚本,而不在 '长度' 失去值被输入到文本框?当我点击按钮时,我得到一个错误,说找不到'长度'。

谢谢!

+0

哎呀。 HTML表单上还有一个提交按钮。 – user1813447

+0

你知道,你可以编辑你的问题;) –

+0

使用$ _SESSIONS多步表格 – Tivie

回答

0

我建议将它们存储在$_SESSION。如果这不起作用,我将它们存储在数据库中?

2

把你的变量隐藏输入:

<input type="hidden" name="myvariable" value="value-from-first-run"> 

或使用会话。

PS:修复你的action。即使在Windows上,您也应该使用/而不是\

+3

请记住,一个用户(谁有足够的网络知识)可以改变隐藏输入的值。 –

+0

这也不起作用。它表示未定义索引:'长度'。 – user1813447

+0

什么是更好的替代隐藏输入? – user1813447

1

所有你需要做的就是打印输入HTML场内部的长度参数的值:

php\test.php: 
<html> 
<body> 
<?php 
$length = $_POST['length']; 
echo $length; 
?> 
<form method="POST" action="php\test.php"> 
<input type="submit" value="Run again!" /> 
<input type="text" value="<?php echo $length?>" name="length" /> 
</form> 
</body> 
</html> 

理想情况下,你应该确认后的数据,以确保你没有得到任何讨厌的惊喜。

0

把你的变量隐藏输入字段:

<input type="hidden" 
     name="length" 
     value="<?php echo htmlspecialchars($_POST['length']); ?>"> 
0

您存储长度$ _SESSION。就像这样:

<html> 
<body> 
<?php 
session_start(); 

// First form 
$form1 = '<form method="post" action=""> 
<input type="text" name="length" /> 
<input type="submit" value="Run again!" /> 
</form>'; 

// Resend form 
$form2 = '<form method="POST" action=""> 
<input type="submit" value="Run again!" /> 
</form>'; 

if (isset($_POST['length'])) { 
    $length = $_SESSION['length'] = $_POST['length']; 
    print $length . '<br>'; 
    print $form2; 
} else if (isset($_SESSION['length'])){ 
    $length = $_SESSION['length']; 
    print $length . '<br>'; 
    print $form2; 
} else { 
    print $form1; 
} 
?> 
</body> 
</html> 
+0

未定义的索引:'长度' – user1813447

+0

配对它给你未定义的索引,如果你直接运行该页面,而没有来自任何形式的帖子在你的问题有两页。 ,似乎你想要一个页面的表格。查看我编辑的帖子! – Tivie