質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

1383閲覧

ajaxで受け取る値でcssを変更する

SugiuraY

総合スコア317

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2018/09/02 03:55

編集2018/09/02 05:55

以下のようにajaxで、1-100%の細かい可変値を受け取り、main.phpのheadに<style>タグを
挿入することを検討しているのですが、そもそもこのような考え方が適切なのかをアドバイスをいただければと思い
投稿させていただきました。

なお、初めからcssを準備しておきそれに応じたaddClassを処理することも考えたのですが、
1-100%が細かい可変値のため、これを採用しませんでした。

ポイントは以下の点です。
・$ajaxでcssの可変値を受け取ろうとしている。
・可変値は無数にある
・実際には受け取った値をRDBに格納し、また他の値をRDBからも取得して加工した数値を、非同期通信し、出力しますが、その部分は本旨から逸れるため、本件から割愛しています。
・出力する.barは複数の要素が変更されることも想定しています。

問題点や、よりよい方法等のアドバイスをいただければ嬉しいです。

よろしくお願い申し上げます。

php

1//receive.php 2$ratio=$_POST['hoge'];//0%-100% 3echo "<style>.bar{width:$ratio}</style>";

html

1main.php// 2<head></head> 3<body> 4 <div class="bar">ratio bar<div> 5 <div class="bar">ratio bar2<div><!--複数要素に適用されるかも--> 6</body>

javascript

1$.ajax({ 2 type:'POST', 3 url:'receive.php', 4 timeout:1000, 5 data:{ 6 //省略 7 }, 8success: function(text){ 9 $('body').append(text); 10 } 11);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2018/09/02 04:05

ajaxをはさむ必要があるのでしょうか。
SugiuraY

2018/09/02 04:10

コメント有難うございます。はい、実際にはPOSTの内容をサーバーに格納するとともに、サーバーから取得した数値も利用して$ratioを計算して非同期通信で結果を出力します
kei344

2018/09/02 04:22

.barの付いた要素が1つだけもしくは複数あっても全部同じスタイルを付与することになりますか?もしくは複数のスタイルを変える必要があるのでしょうか。
SugiuraY

2018/09/02 05:13

コメントありがとうございます。一つの要素を想定してご質問したつもりでしたが、可能性を踏まえると複数要素に適用すべき前提で想定することが適切と考えます、ご指摘ありがとうございます。
kei344

2018/09/02 05:43

この「質問への追記・修正の依頼」の部分はデフォルトで表示されませんので、質問本文を編集することをお勧めします。
SugiuraY

2018/09/02 07:39

コメントありがとうございます、本文に加筆修正させていただきました。
guest

回答1

0

ベストアンサー

PHPから値を受け取って、jsで
$('.bar').css('width',値);
ではダメでしょうか?

投稿2018/09/03 02:00

taka-saan

総合スコア665

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SugiuraY

2018/09/03 02:10

コメント有難うございます。 cssを調整するのではなく、JS側からcssを操作するということですね。こちらでも実行することをかくにんできました。 もしよければ 1) cssではなくjs側で調整する利点 2) 複雑なcssを定義する場合に、本件のような取扱いを推奨するか否かについて のご意見を頂けますでしょうか。 予め、お詫びをもうしあげますが、私がまだまだcssに不案内で、これは良くてこれはだめでということではなく、実務で皆様であればどのように対応されるのかを是非聞いてみたいという純粋な気持ちでお尋ねした次第でございます。 宜しくお願い申し上げます。
taka-saan

2018/09/03 02:47

実装したいものや目的によります。 今回は「進捗バーの長さを動的に表現したい」 というような案件にお見受けしましたので、 script側で動的にcssを変更するのは自然でよく見る実装だと思います。 headタグ内で定義するのは、スタイルを静的に定義したい場合でしょう。 例えば、80%で止めた状態のhtmlとcssを静的に保存したいとか。
SugiuraY

2018/09/03 14:09

コメントをいただきありがとうございます。 大変参考になりました、動的か静的かという視点で一つの目安にしてみようと思います。 ご助言を聞けてよかったです。よろしくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問