我有一个简单的设置,它从颜色选择器获取十六进制值将其转换为RGB,然后从HTML将其发送到PHP脚本。收到的文件没有回显,也没有刷新。我可能做错了什么但想要以某种方式运行它。
function hexToRgb(hex) {
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
return result ? {
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16)
} : null;
}
$(document).ready(function() {
var picker = $.farbtastic('#picker');
picker.linkTo(function onColorChange(color) {
var finalcolor=hexToRgb(color);
console.log(finalcolor,"helloworld");
$.post("imagedisplay.php", {var_value: finalcolor});
});
});
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$hex=$_POST['var_value'];
echo '$hex';
}
?>
答案 0 :(得分:0)
当您使用AJAX时,页面不会自动刷新(这通常是您使用AJAX而非正常表单提交的原因)。您需要$.post
中的回调函数来处理来自PHP的响应:
$(document).ready(function() {
var picker = $.farbtastic('#picker');
picker.linkTo(function onColorChange(color) {
var finalcolor=hexToRgb(color);
console.log(finalcolor,"helloworld");
$.post("imagedisplay.php", {var_value: finalcolor}, function(response) {
alert('PHP said: ' + response);
});
});
});
在PHP中,$hex
是一个关联数组。您无法回显数组,请使用:
print_r($hex);