2013-03-20 187 views
7

只读一个文本框,我怎样才能让一个文本框只读在此代码我怎样才能使PHP

<?php 
    echo form_input(array(
     'name'=>'price', 
     'value'=>$item['price'], 
     'size'=>'6' 
    )); 
?> 

我想只有特定的用户只读的价值,不能改变它。

+0

要知道,在你的表单验证,你仍然需要确保该内容没有被不允许的用户更改,以免设置HTML属性可以很容易地被人威利被撤销。 – Ivo 2013-03-20 13:24:50

回答

15

尝试像

​​3210
+1

感谢它的工作 – user1796164 2013-03-20 13:20:51

+0

很高兴它适合你... – Gautam3164 2013-03-20 13:22:25

+1

太好了。它的工作正常。 – 2015-10-30 12:32:21

3
$options = array(
        'name'  => 'price', 
        'value'  => $item['price'], 
        'size'  => '6' 
); 

if(!$allowed_user){ 
    $options['readonly'] = 'readonly' 
} 

echo form_input($options); 
2

你可以做到这一点:

<?php 
    echo form_input(array('name'=>'price','value'=>$item['price'],'size'=>'6', 
    'readonly'=>'readonly')); 
?> 

这将是XHTML兼容。

只要确保将不是在服务器端读取它,不要信任客户端数据,因为可以更改HTML以允许修改值。

0

有很多方法可以做到这一点:

从CI表单字段:

echo form_input(array('name'=>'price','value'=>$item['price'],'size'=>'6','readonly'=>'true')); 

从jQuery的/ JavaScript的:

使用字段的ID:

$("#id_offield").attr("readonly",true); 

in html:

<textarea rows="4" cols="50" readonly> 

等!

希望能对您有所帮助!

1
# Try pure PHP 
if(isset($_POST['something'])){ 
# Do not set the readonly attribute 
$readonly =''; 
}else{ 
# Set the readonly attribute 
$readonly = 'readonly'; 
} 
<input type="text" <?php echo $readonly; ?>>