2016-03-18 46 views
-2

我目前正在製作一個包含一些動態添加的<input type='color'>字段的表單,並且我想將它們的值發佈到另一個php文件。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); 
}); 
+0

你有沒有事件試過? – wawawoom

+0

我試着用javascript獲取值,但它可能會失敗,因爲我將有多個輸入字段的實例@Connum – Deimantas

+1

發佈代碼以獲得幫助。 – wawawoom

回答

0

您也可以用含有一個onclick功能設置隱藏輸入的值提交的十六進制值:

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

或把

 colorpicker_value.value(this.value); 

到您的腳本來設置隱藏輸入的值,如果你不想直接從中獲取值顏色拾取 -

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

,或者你可以給ColorPicker中「名」 name="colorpicker"這樣你就可以直接拿起它的值作爲$_POST['colorpicker']變量按照上述意見。

您可以在頁面從PHP提供的點,如果你知道它們預裝值:

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

假設從DB值是十六進制值。

如果你有多個colorpickers提交,只要你給每個人一個獨特的名字,你將能夠在PHP中獨立收集他們的值,不管他們的類或ID。

Function that converts hex color values to an approximate color name?

這是一個鏈接:

然後,你可以通過將其轉換爲RGB和查找使用陣列所產生的值已被證明對這些所謂的答案查找的十六進制值甚至可以在同一頁面上從Jake獲得更大的Hex/RGB to Text值 - 它沒有獲得多少選票,但看起來像是他花了很多工作。

你也許能夠使自己的陣列,並期待直接使用十六進制顏色名稱http://www.w3schools.com/colors/colors_names.asp

通過一個ColorPicker元素不會出現在IE8在一路的這個列表中的十六進制值,如果這是任何關注 - 它只顯示爲一個文本輸入 - 讓我感到困惑了一段時間。

+0

感謝這一點,但雖然它是正確的,我已經找到了解決方案。這是我的動作文件 – Deimantas

+0

@Deimantas中的一個錯誤很高興知道 - 我有樂趣將它們拉在一起。 – Steve

0

你只需要將數據發佈到一個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 
)); 
+0

是的,但輸入是type ='顏色',我想要得到的價值,而不是type ='text' – Deimantas

+0

和這些字段**動態**添加 – Deimantas