2015-07-19 59 views
-2

更新1:用户输入在页面上正确输入并提交时,故意不清楚。问题是当他们离开并重新访问时,那里的输入消失了。如何防止textarea表单在提交,离开和重新进入页面时清除回声?

下面是HTML代码:

   Subject1<br /><textarea name="subject1name" placeholder="Things about Subject1" id="subjects" rows="3" cols="48" maxlength="155"><?php echo $s1; ?></textarea><br /><br /> 
       Subject2<br /><textarea name="subject2name" placeholder="Things about Subject2" id="aboutYou" rows="3" cols="48" maxlength="155"><?php echo $s2; ?></textarea><br /><br /> 

下面是关于提交按钮的PHP代码:

if(isset($_POST['submit'])) { 
    $updateCD = "UPDATE users SET subject1name='$s1', subject2name='$s2' WHERE email='$_SESSION[email_login]'"; 
    $updateSQ = mysqli_query($con, $updateCD); 

    echo '<div id="confirmation">Profile updated!</div>'; 
} 
else{ 
} 

我目前遇到麻烦让我的texarea箱子从在离开清除其回波输出并重新进入该页面。

进一步澄清:

有提示用户在信息输入个人资料页。条目填写完成后,用户单击一个按钮,该按钮将输入的数据提交并存储在数据库中。用户不会被导向其他任何地方,因此他们与编辑的个人资料保持同一页面。我遇到的问题是,当他们离开配置文件页面并重新访问它时,即使php块回显了应该显示其信息的变量,他们输入的条目也被清除,并留下占位符文本以重新提示其信息再访。只有当用户离开配置文件页面并重新访问时才会发生这种情况。

如何确保在用户离开并重新访问该页面时显示用户信息?谢谢。

+0

你可以发布你的代码并更新你的问题 –

+0

@MeeneshJain当然,做到了。 – CodeMerchant

回答

1

如果您粘贴当前代码,我可能会更好地帮助您。我可以隐约回答,希望它能帮助你弄清楚。

您可以将任何值送入textarea。执行数据库调用以及用户可能输入的任何现有值的$ _REQUEST检查。

<?php 
$textareaValue = do_database_call(); 
if ($textareaValue === null && isset($_REQUEST['mytextarea'])) { 
    $textareaValue = $_REQUEST['mytextarea']; 
} 
?> 
<textarea name="mytextarea"><?= $textareaValue ?></textarea> 

这将显示用户在无效提交或他们当前存储在数据库中的内容。

UPDATE:以反映您所提供的代码。此外,这里的代码不安全,因为您很容易受到SQL注入的影响。我会建议使用这些表单的Web框架。这里是Symfony的表单组件。 http://symfony.com/doc/current/book/forms.html

<?php 
function form_value($con, $name) { 
    $val = mysqli_query($con, "SELECT $name FROM...."); // TODO: finish this code 
    if ($val === null && isset($_REQUEST[$name])) { 
     $val = $_REQUEST[$name]; 
    } 
    return $val; 
} 
?> 
<textarea name="subject1name"><?= form_value($con, 'subject1name') ?></textarea> 

要清楚,我绝不会使用上面的代码。这主要是为了证明当用户重新访问时,您需要运行SELECT查询以从数据库中获取其值。

+0

那么我需要为每个textarea表单创建if语句吗?我有一些,只是我已经在更新的OP中的样本。 – CodeMerchant

+0

你可以编写一个函数,它包含textarea的名字,这个名字可以在数据库中查看,也可以在超全局的请求中查找。大多数Web框架都为您提供此功能。 –

+0

谢谢你的补充;我一定会检查出来。因为我对编码不熟悉,所以我首先只想在代码加强之前让代码工作。那么我应该有一个单独的php块来选择记录中的值,对吧?因此,如果我想请求多个信息列,我是否可以通过在$ name之后添加更多变量来扩展该信息? – CodeMerchant

相关问题