-1

请帮忙,我正在努力做到这一点,以便在用户或客人访问我的网页时,他们会看到一个被禁用的文本区域,一旦他们登录,他们就可以点击编辑这个文本区域。

我已经按照我想要的方式设置了它,但是目前如果用户登录文本区域,则会从禁用的区域切换到可编辑的区域。但随后其他配置文件的所有其他文本区域都消失了,我希望这些文本区域保持不变,以便登录用户可以看到其他用户但不能编辑它们?

希望我已经解释得足够清楚了。希望这是可能的吗?

<?php if (isset($_SESSION['user_id'])) { 
            if ($user['id'] == $_SESSION['user_id']){
 ?>                 

<textarea id="area"  rows="10" style="
    width: 456px; 
    margin-top:3px;
    text-align:left;
    margin-left:-2px;
    height: 122px;
    resize: none; 
    border: hidden;"><?php echo $profile['bio'] ?> </textarea>

<?
} 
}
?>

<?php
    if (!logged_in()) {
        ?>

<textarea id="area-read" disabled="yes" style="
    width: 456px;
    margin-top:3px;
    text-align:left;
    margin-left:-2px;
    height: 122px;
    resize: none; 
    border: hidden;"><?php echo $profile['bio'] ?> </textarea>
<?
} 
?>
4

4 回答 4

1

尝试仅将 disabled="yes" 放在 php 检查中

<textarea id="area-read" <?php if(!logged_in()) { echo 'disabled="yes"'; } ?> 
于 2012-10-24T14:16:47.020 回答
1

您说对于其他配置文件,文本区域消失了。那是因为在用户登录后,他的会话就设置好了。并且仅在id等于 session的配置文件中user_id,才会打印 textarea。因此,您需要处理第一个块if内部的else 情况。if

<?php
if (isset($_SESSION['user_id']))
{ 
    if ($user['id'] == $_SESSION['user_id'])
    {
?>                 

    <textarea id="area"  rows="10" style="
    width: 456px; 
    margin-top:3px;
    text-align:left;
    margin-left:-2px;
    height: 122px;
    resize: none; 
    border: hidden;"><?php echo $profile['bio'] ?> </textarea>

<?php
    }
    else
    {
    //Printing the text area for other users/profiles. This is what you said was missing.
?>

    <textarea id="area-read" disabled="yes" style="
    width: 456px;
    margin-top:3px;
    text-align:left;
    margin-left:-2px;
    height: 122px;
    resize: none; 
    border: hidden;"><?php echo $profile['bio'] ?> </textarea>

<?php
   }
}
?>

<?php
    if (!logged_in()) 
    {
?>              
    <textarea id="area-read" disabled="yes" style="
    width: 456px;
    margin-top:3px;
    text-align:left;
    margin-left:-2px;
    height: 122px;
    resize: none; 
    border: hidden;"><?php echo $profile['bio'] ?> </textarea>
<?php
    } 
?>
于 2012-10-24T14:25:26.873 回答
0

就像 Svetlio 说的那样,只将禁用的放在检查中,但也扩展了检查,因此您只为该用户启用 textarea 并禁用其他用户。

<textarea id="area-read" <?php if(!logged_in() || $_SESSION['user_id']!=$user['id']) { echo 'disabled="yes"'; } ?> 

编辑:

为了回复您的评论,通常您将无法看到登录用户两次的 textarea,所以这里是代码需要的完整版本:

<textarea id="area-read" <?php if(!logged_in() || $_SESSION['user_id']!=$user['id']){ echo 'disabled="disabled"' } ?> style="
    width: 456px;
    margin-top:3px;
    text-align:left;
    margin-left:-2px;
    height: 122px;
    resize: none; 
    border: hidden;"><?php echo $profile['bio'] ?> </textarea>

这就是你所需要的,仅此而已

于 2012-10-24T14:21:01.233 回答
0

disabled="disabled"是 textarea 的正确语法。所以你应该:

<textarea id="area-read" <?php echo ( (!logged_in() ? (" disabled='disabled' ") : ("") ) ; ?> 
于 2012-10-24T14:21:07.717 回答