1

私が欲しいのは、あるJavaScriptセクションからCSSファイルとして機能する別のphpファイルに色の値を取得することです。私は ajax でいくつかの例を見ましたが、.done と .always はデータが送信されたと言っていますが、それらは機能しません。したがって、スクリプト部分と色の値は次のとおりです。

    var jCell = '#aabbcc';


 $(document).ready(function (){
  $.ajax({
    url: "view/stylesheet/supercharge.css",
    data: {cell: jCell},
    type: "POST",
    async: false })
    .done(function(cell) { console.log("success: "+ jCell); })
    .fail(function() { console.log("error"); })
    .always(function() { console.log("complete"); })
  });

これはphpファイル(cssとして機能)で、$_postで値を取得する必要がありますが、そうではありません:

<?php header("Content-type: text/css; charset: UTF-8"); ?> 

<?php 

    $menuColor = '#121212';
    $headerColor = $_POST['cell'];
    $bodyColor = '#fffaaa';

?>

#header {
    background-color: <?=$headerColor; ?>;
}

助言がありますか?

ありがとう。

4

4 に答える 4

3

変化 -

url: "view/stylesheet/supercharge.css",

url: "view/stylesheet/supercharge.php",

あなたは何cellですか?それはグローバル変数ですか?

于 2013-06-10T15:27:29.490 に答える
0

コメントできたらいいな!Swapnesh は正しいです。回答する前に確認を行いました。ほとんどのサーバーは、拡張子が .css のファイルを php で解析しません。拡張子を .php に変更するとコードを実行できますが、送信されたヘッダーは、応答がデフォルトの html ではなく css 型であることを示しています。この手法は、JavaScript ファイルやプレーン テキスト ファイルにもよく使用されます。

また、一般的に言えば、 cssメソッドを使用して直接jqueryで動的CSSスタイルを適用する方がおそらく簡単/効率的であることを付け加えるかもしれません

$('cell #header').css('background-color', jCell);

しかし、繰り返しになりますが、一般的なアイデアについて詳しく説明していないため、ajaxを使用しているすべての理由はわかりませんが、役立つものを取り、残りを残してください。

EDIT:あなたが(これを読んでいる可能性が高いですが)気をつけたいと思うかもしれないもう1つのことは、短いタグです。それらを使用できないと言っているのではなく、PHPドキュメントに記載されているように注意してください

短いタグ ... は、 php.ini 設定ファイルのshort_open_tagディレクティブで有効になっている場合、または PHP が --enable-short-tags オプションで設定されている場合にのみ使用できます。

短いタグは対象サーバーでサポートされていない可能性があるため、再配布を目的としたアプリケーションやライブラリを開発する場合、または管理下にない PHP サーバーにデプロイする場合は、短いタグの使用を避ける必要があります。移植可能で再配布可能なコードの場合は、短いタグを使用しないでください。

PHP 5.4 以降<?=では、short_open_tag の設定に関係なく、短い echo タグが常に認識され、有効になります。

于 2013-06-10T15:50:27.863 に答える