2013-07-10 41 views
2

我很确定这是必须在PHP中......但让我解释我在找什么。使用表单字段值自定义CSS属性

我有我的网站上输入框和以往用户输入什么在那里被设置为CSS

例如

body{ 
Background-color: [text from the input goes here]; 
} 
+2

您需要使用JavaScript或PHP进行此操作 – 1andsock

+0

输入是表单的一部分,对吧?表单如何处理?一旦你有了变量,你只需要改变body元素的style属性。 JavaScript可能已经足够了。 – icedwater

回答

2

使用Javascript/jQuery的你可以这样做:

见(尝试把在#000,或绿,或其他颜色):http://jsfiddle.net/mH6MK/

$(document).ready(function() { 
    $('input[name=getColor]').change(function() { 
     var $color = $("#getColor").val(); 
     $('body').css('backgroundColor', $color); 
    }); 
}); 

或PHP会像这个:

<? 
$color = $_GET['color']; 
echo '<style type="text/css">body{background:'.$color.';}</style>'; 
?> 
+0

非常感谢,如果你不介意的话,我还有一个问题。如果我想用html做一些这样的事情...就像改变

Ayoub

+0

之间的文本,你认为这是最好的 – Ayoub

+0

@Ayoub,好的,这里有jQuery:http://jsfiddle.net/kaSde/ – 1andsock

-1

为什么不使用jQuery的?

$('body').css('backgroundColor', [input from box]); 
0

随着一些测试,我发现可以使用以下设置身体背景颜色:

document.body.style.backgroundColor = "purple"; 

,如果你有input元素的name/id,那么它的价值是:

document.getElementsByName(elementName).value 

所以应该不会太困难把这些拼凑。只要听听输入焦点何时改变,可能通过onBlur听众。

2

你可以使用jquery,但如果你不使用jquery,我建议使用纯javascript。它速度更快,功能更强大。

链接演示=>http://jsfiddle.net/77Bjx/

HTML

<input placeholder="enter hex color w/o #" id="bg" type="text"/> 
<input type="button" value="submit" onClick="setBG()"/> 

的JavaScript

function setBG() { 
    var elem = document.getElementById('bg') 
    document.body.style.backgroundColor = '#' + elem.value; 
} 

您可以用比改善此功能。也许设置一个检查,以确保它是一个有效的十六进制值? 检查它是否以#开头,如果不是则输入一个。等等。

0

你绝对是对的!你可以使用PHP,但你可以考虑使用jQuery并通过$('input')获取输入元素并获取值并添加css。

假设你有一个ID为#css的输入,我打算使用on()方法并使用事件委托来定位在本例中为#css的特定ID。

你会做这样的事情:

$('form").on('submit', '#css', function()) { 
var value = $this.val(); 
$('body').css('background-color', value); 
}); 

您可能要检查你从用户获得的价值,并确保它是正确的CSS的十六进制颜色值什么的。某种形式的验证。 这只是几种方法之一,PHP也是一种选择。