2013-11-26 2 views
0

Как сохранить значение выбора цвета в mysql, у меня есть код для изменения фона, но я хочу сохранить значение выбора цвета в моем sql, используя php-скрипт .. помогите мне пожалуйста .. Спасибо перед тем ^^Как сохранить значение выбора цвета в mysql

<!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> 
+0

вы можете использовать Ajax для этого –

+0

Что вы сделали на вашей стороне сервера (внутри PHP скрипт?). Похоже, ваш JavaScript блокирует действие отправки, предотвращающее отправку формы на сервер. – aust

ответ

0

вы мешают форму быть отправки, поэтому я думаю, вы не хотите, чтобы страница перезагружается. Это означает, что вы должны использовать AJAX. Так как вы использовали чистый 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(); 

EDITED & ПРОВЕРЕНО

я исправил код и протестировали его немного - он теперь работает :)

Смежные вопросы