php - 如何将颜色选择器的值保存到mysql中

标签 php mysql html

如何将颜色选择器的值保存到mysql中,我有更改背景的代码,但我想使用php脚本将颜色选择器的值保存到我的sql中..请帮助我.. 先谢谢了^^

<!DOCTYPE HTML>
<html>
   <head>
      <title>Control Color</title>
      <script type="text/javascript">
         window.onload = init;
         function init () {
            var formulir = document.getElementById("formulir");
            formulir.onsubmit = function() {
               var color1 = document.getElementById("color1").value;
               document.bgColor = color1;
               return false; // Batalkan submit
            }      
         }
      </script>
      <style>
         label {
            float: left;
            width: 120px;
         }  
         p { clear: both; } 
      </style>
   </head>
   <body>
      <form id="formulir" action="">
         <fieldset>
            <legend>change background:</legend>
            <p>
               <label>color:</label>
               <input type="color" id="color1" name="color1">
            </p>
            <input type="submit"  id="button" value="Process">
         </fieldset>
      </form>
   </body>
</html>

最佳答案

您正在阻止发送表单,所以我猜您不希望重新加载页面。这意味着您必须使用 AJAX。既然你使用了纯 javascript,我也会使用它,但我建议对基本项目使用框架:)

在你的 JavaScript 脚本中添加类似的内容

function sendPostToPHP( color ){
    if (window.XMLHttpRequest) var ajaxPostRequest = new XMLHttpRequest(); // IE7+, Firefox, Chrome, Opera, Safari 
      else var ajaxPostRequest = new ActiveXObject("Microsoft.XMLHTTP"); // IE6, IE5   

    ajaxPostRequest.open("POST", "YOURSCRIPT.php", false);

    ajaxPostRequest.onreadystatechange = function() {
        if(ajaxPostRequest.readyState == 4) {
            if (ajaxPostRequest.status == 200) {
                //data was revived successfully.
            }
        }
    }

    var data = "color=" + color;
    //setting header is important - otherwise PHP will not load it into $_POST:
    ajaxPostRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    ajaxPostRequest.send(data);        
}

然后在行 var color1 = document.getElementById("color1").value; 之后添加如下内容:

sendPostToPHP(color1);

您的 PHP 可能如下所示:

if( empty($_POST['color']) ) exit("No color recived.");

try {
    $db_connection = new PDO('mysql:host=YOURHOSTNAME;dbname=YOURDBNAME', 'YOURDBUSER', 'YOURDBPASSWORD');
    $db_connection -> query("SET NAMES 'utf8'"); //optional
} catch (Exception $e) {
    // DB CONNECTION ERROR
} 
//example query:
$query = $db_connection->prepare( "INSERT INTO colors (color) VALUES (:color)" ); 
$query->bindValue(':color', $_POST['color'], PDO::PARAM_STR); 
$query->execute();

编辑和测试

我已经更正了代码并对其进行了一些测试 - 现在它可以工作了:)

关于php - 如何将颜色选择器的值保存到mysql中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20208804/

相关文章:

mysql - 选择“与表不同”以对另一个表的值求和

PHP/MySQL 处理每行属性发生变化的 XML 数组

html - 在不同的 DIV 中显示子无序列表

html - 为什么YouTube加载速度如此之快,每次移动进度时,我都会尝试使用flutter代码多次,

javascript - 我怎样才能停止 AJAX 调用保持 PHP session 事件

php - YII2 - 如何从表单中获取字段值以进行搜索

php - 在 Go 中获取 PHP 配置变量

php - 与 php 相比,Ruby 如何处理未声明的变量?

mysql - 如何得到正确的计数

jquery - 移动菜单激活/停用和调整大小后桌面菜单消失