過去5日間、これを解決しようとしていますが、何もうまくいきません。この件に関するすべての投稿を閲覧しましたが、何も役に立ちません。私は OpenCart CMS を使用しており、単純な jquery 変数を ajax と post を使用してあるファイルから別のファイルに送信して、css ファイルの背景色を変更できるようにしたいと考えています。ファイルに .php 拡張子が付いていない理由を明確にするために、このチュートリアルhttp://net.tutsplus.com/tutorials/php/supercharge-your-css-with-php-under-the-hood/特にエレガントな方法を読んでください. これがajaxのコードです
$(document).ready(
function()
{
var headerDefaultColor = "#126FA8";
$.ajax({
url: "view/stylesheet/supercharge.css",
data: {cell: headerDefaultColor},
type: "POST",
async: false,
success: function(data) {
console.log("Send");
},
error: function(data){
console.log("Error");
}
})
.done(function(cell) { console.log("Done success: " + cell); })
.fail(function() { console.log("error"); })
.always(function() { console.log("complete"); })
});
これはcssのコードです
<?php header("Content-type: text/css"); ?>
<?php
$headerColor = null;
var_dump($_POST['cell']);
if(isset($_POST['cell'])){
$headerColor = $_POST['cell'];
} else {
$headerColor = "Nothing happends, again!!";
}
?>
#header {
background-color: <?php echo $headerColor; ?>;
}
これは私がコンソールに表示するものです:
Send index.php:103
Done success:
<pre class='xdebug-var-dump' dir='ltr'><small>string</small> <font color='#cc0000'>'#126FA8'</font> <i>(length=7)</i>
</pre>
#header {
background-color: #126FA8;
}
ただし、これはcssファイルで取得したものです。16 進コードを送信する必要がありますが、送信されず、Notice: Undefined index: cell が生成され、出力は次のとおりです。
<br />
<font size='1'><table class='xdebug-error xe-notice' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined index: cell in C:\Program Files (x86)\wamp\www\opencart-1.5.5.1\upload\admin\view\stylesheet\supercharge.css on line <i>14</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0004</td><td bgcolor='#eeeeec' align='right'>250160</td><td bgcolor='#eeeeec'>{main}( )</td><td title='C:\Program Files (x86)\wamp\www\opencart-1.5.5.1\upload\admin\view\stylesheet\supercharge.css' bgcolor='#eeeeec'>..\supercharge.css<b>:</b>0</td></tr>
</table></font>
<pre class='xdebug-var-dump' dir='ltr'><font color='#3465a4'>null</font>
</pre>
#header {
background-color: Nothing happends, again!!;
}
isset() で試してみましたが、動作しません。 empty() で試してみましたが、動作しませんでした。また、Google から提供されたすべての単一の検索結果も表示され、何も動作しませんでした。したがって、var headerDefaultColor を .css ファイルに送信し、背景色を jquery ではなく php で変更する必要があります (正常に動作します)。ここで何が欠けていますか?