PHP - 获取颜色输入值


PHP - Get colour input value

我目前正在制作一个表单,其中包含一些动态添加的<input type='color'>字段,我想将它们的值发布到另一个php文件中。

我怎样才能做到这一点?没有JavaScript可以做到吗?

示例输入:

<input name='ID From database' type='color' id='colorpicker' value='value from DB'>

JS:

var color = $('#colorpicker').val();
colorpicker = $('#colorpicker');
$('#colorpicker').on('change', function() {
  colorpicker.value(this.value);
});

您可以通过使用 onclick 函数设置隐藏输入的值来提交十六进制值,其中包含:

      document.getElementById('colorpicker_value').value = document.getElementById('colorpicker').value;

或放置

      colorpicker_value.value(this.value);

到脚本中设置隐藏输入的值,如果您不想直接从颜色选择器中获取值 -

      <input type="hidden" name="colorpicker_value"/>

或者你可以给颜色选择器一个"名称"name="colorpicker"这样你就可以根据上面的注释直接将其值作为$_POST['colorpicker']变量选取。

如果您在从 PHP 传送页面时知道这些值,则可以预加载这些值:

      <input type="color" class="colorpicker" name="colorpicker<?php echo htmlspecialchars($unique_number); ?>" value="<?php echo htmlspecialchars($value_from_DB); ?>">

假设数据库中的值是十六进制值。

如果你有多个颜色选择器要提交,只要你给每个颜色选择器一个唯一的名称,你就能够在PHP中独立收集它们的值,而不管它们的类或ID如何。

然后,您可以通过将其转换为 RGB 并查找使用数组生成的值来查找十六进制值,如以下 SO 答案所示:

将十六进制颜色值转换为近似颜色名称的函数?

这是一个指向更大值数组的链接 十六进制/RGB 到同一页面上来自 Jake 的文本 - 它没有得到很多选票,但看起来他花了很多工作。

您可以创建自己的数组,并使用此十六进制颜色名称列表直接查找十六进制值 http://www.w3schools.com/colors/colors_names.asp

顺便说一句,如果有任何问题,颜色选择器元素在 ie8 中根本没有出现 - 它只显示为文本输入 - 让我困惑了一段时间。

您只需将数据发布到 php 页面,然后将插入到数据库中即可。

//html page
<form action="receive.php"> 
   <input type="text" name="color1">
   <input type="text" name="color2">
   <button type="submit">Submit</button>
</form>
//php page
<?php
$color1=$_POST['color1'];
$color2=$_POST['color2'];
//the inserts depend on what type of method you want to interact with the db but here is a pdo example
$db = new PDO("mysql:host=YOURHOST;dbname=YOURDB",YOURUSER,YOURPASSWORD);
$statement = $link->prepare("INSERT INTO YOURTABLE(color1, color2)
    VALUES(:color1, :color2)");
$statement->execute(array(
    "color1" => $color1,
    "color2" => $color2
));