• 締切済み

@color1 = ('0000ae',・・・,'$user_color')で・・

とまとです。 行き詰まりました(TェT) 標題の代入で、'$user_color'の部分を文字列ではなく、後から出て来るinputで入力した文字を代入させるにはどうしたらいいのでしょう? ※標題のままだと「$user_color」という"文字列"が代入されてしまいます。

みんなの回答

  • estea
  • ベストアンサー率44% (39/87)
回答No.5

えっと、よくわからないんですが、 $ccolor はクッキーに設定された値で、 $user_color は、form から得られた値ですよね? $color って何ですか? for 文をまわすときの一時変数ですか?

tomato11cats
質問者

お礼

色々ありがとうございました。 一旦締め切ります。

tomato11cats
質問者

補足

お返事が大変遅れました(;^_^A アセアセ…すみません。 $colorは、元々のスクリプトで色んな色の羅列があり、それをラジオボタンと共に吐きだしてhtmlに書いてるんですが、そのラジオボタンで選ぶと代入されるものです。

全文を見る
すると、全ての回答が全文表示されます。
  • estea
  • ベストアンサー率44% (39/87)
回答No.4

あ~っと、 input ってのは HTMLタグのことですか・・・。 では、まず$user_color に値は入っていますか? 確認してください。 引数(?)やクッキーからも値が得られない場合は print " original color ..... 行で出力される value 値に値は入りませんよね? <input type=radio name=color value=><font color=>■</font> 行で value が空なのは、 $user_color が空だからでしょう。ちゃんと form 空のデータを受け取っていますか? あるいは、データがない場合(そのページをいきなり開いた場合など)の処理は含まれていますか? 確認してください。 以上2点の確認をお願いします。

tomato11cats
質問者

補足

あぁ、そっか!! inputの場所を変えてしまったので、formがないのかもしれません(;^_^A アセアセ… >あるいは、データがない場合(そのページをいきなり開いた場合など)の処理は含まれていますか? これは、もし、$user_colorが$colorと同じなら$user_colorには$colorを代入し、そうでないなら$user_colorには特定色を代入しろ、というプログラムでいけますか? ちょっとやってみます!! また報告します。 何度もありがとうございます。(深謝)

全文を見る
すると、全ての回答が全文表示されます。
  • estea
  • ベストアンサー率44% (39/87)
回答No.3

では、順番を以下のように変えてください。 1)input を user_color に入れる 2) @color1=('0000ae',......,$user_color); >単純に考えたら$colorの色を$user_colorに代入して表示して、その後その色を選んでinputで$colorに色データを入れたら次からはその色で表示しそうな気がしてたんですが Cのようなポインタではないのでご指摘の方法では難しいかと思いますが?

tomato11cats
質問者

お礼

print " original color<input name=user_color size=8 maxlength=8 value=\"$user_color\"></td></tr>\n"; @color1 = ('0000ae','0000ff','3399cc','009999','02b9df','9999ff','cc00cc','ff0000','C70000','ff6666','ff99cc','ff9933','ecbd00','00cc00','009933','990000','666666','000000',$user_color); @color2 = ('シアン','エーゲブルー','ブルーグレー','コバルトブルー','スカイブルー','ヴァイオレット','パープル','レッド','フェラーリレッド','サーモンピンク','ピンク','ヴァレンシアオレンジ','山吹','新茶グリーン','グリーン','チョコレート','グレー','ブラック','オリジナル'); print "<tr><td nowrap><b>文字色</b></td><td>\n"; # クッキーの色情報がない場合 if ($ccol eq "") { $ccol = $color1[0]; } foreach (0 .. $#color1) { if ($ccol eq $color1[$_]) { print "<input type=radio name=color value=$color1[$_] checked>"; print "<font color=$color1[$_]>■</font>\n"; } else { print "<input type=radio name=color value=$color1[$_]>"; print "<font color=$color1[$_]>■</font>\n"; } } これでも読み込みません。 htmlのソースを見ると色データが空です。 <input type=radio name=color value=000000><font color=000000>■</font> <input type=radio name=color value=><font color=>■</font>  : <option value="000000">ブラック <option value="">オリジナル お礼部分に補足ですみません。

tomato11cats
質問者

補足

順番を逆にすると、色のデータを拾えなくなるらしく、今まで表示していたラジオボタンと■に色のついたものが出なくなります(T-T) >Cのようなポインタではないのでご指摘の方法では難しいかと思いますが? 私はPerlもちょっぴりカスタマイズできる程度の知識しかありません。 的はずれな事を色々言うかもしれませんが、何卒ご教授ください。よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • sisya
  • ベストアンサー率39% (97/245)
回答No.2

#1の方が回答なさっている通り 「'」を取れば文字列ではなく、変数になります。 #1の方が仰っているのは $user_colorと言う変数に後から値をいえるなら 「@color1 = ('0000ae',・・・,'$user_color')」 の時点では何も入ってないのではないか? と言う事です。 配列に入れた後で$user_colorの値を変更しても @color1の中身は変化しません。

tomato11cats
質問者

補足

回答ありがとうございます。 えっと、これを受けて以下のようにしました。 1)$user_colorの''を取る 2)配列の前に$user_color=$colorとして$user_colorに直前の$colorの情報を代入 3)配列の後のinputはuser_colorでなくcolorに代入 これでも動きません(TェT) 単純に考えたら$colorの色を$user_colorに代入して表示して、その後その色を選んでinputで$colorに色データを入れたら次からはその色で表示しそうな気がしてたんですが・・(;^_^A アセアセ…

全文を見る
すると、全ての回答が全文表示されます。
  • estea
  • ベストアンサー率44% (39/87)
回答No.1

変数の内容を展開したければ、 ' でくくらなければいいわけですが、 後から出てくるなら、その代入時点では undefine 状態ですか?

tomato11cats
質問者

補足

すみません。undefine状態、というのがよく分からないのですが・・・(^-^;) 展開するソースは以下の通りです。 print "<tr><td nowrap><b>文字色</b></td><td>\n"; # クッキーの色情報がない場合 if ($ccol eq "") { $ccol = $color1[0]; } foreach (0 .. $#color1) { if ($ccol eq $color1[$_]) { print "<input type=radio name=color value=\"$color1[$_]\" checked>"; print "<font color=\"$color1[$_]\">■</font>\n"; } else { print "<input type=radio name=color value=\"$color1[$_]\">"; print "<font color=\"$color1[$_]\">■</font>\n"; } } print "<br>original<input name=user_color size=8 maxlength=8 value=\"$color\">\n"; --- ※$ccolはcolorのクッキーです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ユーザーコントロールでcolorのようなプロパティ

    color構造体のようなプロパティを、ユーザーコントロールで実現する方法はありますか? c#のButtonを継承して音が鳴るボタンを作ろうとしています。waveをリソースとして埋め込み、プロパティでリソース名の文字列を指定してオブジェクトごとに異なる音を再生しようと考えています。そこで、新しくプロパティを追加したいのですが、Stringで直接渡すと予期していない文字列が渡してしまう可能性があるので、colorのような一覧から選択させるようにしたいと思っているのですが、うまくいきません。VoiceType構造体を作ってVoiceプロパティを追加してみたのですが、プロパティペインのVoiceの欄には <Project名>.<ユーザーコントロール名>+VoiceType という文字列がグレーアウトで入っています。 解決策がわかる方がいればご教授おねがいします。

  • このようなユーザー定義の文字列の設定

    たとえば「20210411」と入力(またはコピペ)すると、「2021年04月11日」と表示してくれるような、書式におけるユーザー定義の文字列について教えてください。 もうひとつなのですが、同様に、 たとえば「-100」という文字列を入力(またはコピペ)すると、マイナスの部分がとれて「100」表示してくれるような、書式におけるユーザー定義の文字列について教えてください。 Excel2019利用です。

  • VC++ CLRについて

    ユーザーがtextBoxに入力した文字をwchar_t型に変換して一文字づつ配列に代入したいのですが・・・ たとえば、 ユーザーがtextBoxに「あいうえお」と入力するとします。 それをwchar_t型の配列で abc[0]='あ'; abc[1]='い'; というように分割をしたいのですが

  • Excelで「=RSS|'****.T'!銘柄コード」の*に参照した数字を入れたいです

    ExcelでB1に「=RSS|'****.T'!銘柄コード」の*に例えばA1に入力された数字を 参照してA1に「1234」と入力したら****に1234と代入したいです。 「=RSS|'A1.T'!銘柄コード」とすると文字列ととらえてしまい代入することが できません。 何か上手い方法があれば教えて下さい。

  • ユーザーフォームからセルに入力すると書式が限定される?

    ユーザーフォームを作成して、その中にあるテキストボックスに入力した文字列(具体的には100-200というように数字‐数字というタイプ)をエクセルのワークシートに入力すると月日表示になってしまいます。別に代入先のセルの書式を固定しているわけではないのですが・・。何でなのか心当たりのある方いらっしゃませんか?(^^;)

  • エクセル2007の、ユーザー定義について

    エクセル2007の、ユーザー定義について セル範囲に、文字列、0、1、0.5 の値がランダムに、複数あります。 この範囲に、0を表示させないように、ユーザー定義にて、 「#;-#;"";@」 を設定したところ、0は消えたのですが、0.5が1と表示されます。 元々の1、文字列はそのままです。 0.5(値を計算に使います)を0.5と表示させたまま、0を表示せず、1、文字列はそのままに 表示させるにはどう設定すればよいでしょうか? 良い方法があれば、よろしくお願いいたします。

  • エクセルのユーザー定義

    エクセルのユーザー定義で入力した文字列に対して( )を付けることが出来ますか? 例  エクセル→(エクセル)  

  • 理解できず困ってます。

    6回改行された文字列を入力した場合に、文字列をリストで表示したいのですが、 こんな感じで書いてみましたが、動作しません。。。 (’後のコメントで間違っているところも指摘いただきどうすればよいかご教示いただないでしょうか。。)             ’下記は私の認識及び、こうなっている?と思っていること mylist = []        ’リストの宣言? for i in range(5):     ’入力される文字列をiでカウント val = input()      ’入力される文字列をvalに代入 if val !='':      ’文字列が入力された場合 mylist[i] = val   ’i要素にvalを代入(文字列 ⇒ ['文字列']のイメージ) i = i + 1      ’iのカウントアップ else:        ’文字列が何も入力されてない場合 break      ’ifループを抜ける next          ’for文ループ print(mylist)       ’['文字列[0]','文字列[1]','文字列[2]','文字列[3]','文字列[4]','文字列[5]']を表示

  • style.colorなど

    <span id= "AAA">文字列A 文字列B</span> 上記の文字色を変更する操作においてのJavaScriptについてです。。 ソースがあちこち飛んでいて全ての記述は困難なので書き出します。 MojiA="文字列C " MojiB="文字列D" //文字列C 文字列Dを新たに上書きします document.getElementById('AAA').innerText = MojiC + MojiD ; //一定時間したら以下が実行されて文字色が変色します function CHG() { document.getElementById('AAA').innerHTML = MojiC.fontcolor("#ffff00") + MojiD.fontcolor("#ff0000") ; } //再び一定時間したら以下が実行されて文字色が変色します function mojiClear() { document.getElementById(AAA').style.color = "#ffffff" } この時、最後のスクリプトは MojiC.fontcolor("#ffffff") + MojiD.fontcolor("#ffffff") ではなく、.style.color = "#ffffff"を指定したいのですが、ここが機能しません。 ユーザーの選択項目によって変数が違ってくるので、id=AAAとして一括で変色したいのです。 MojiC.fontcolor("#ffff00") + MojiD.fontcolor("#ff0000") ;の指定を行った後では、 スタイル変更は不可能なのでしょうか?

  • エクセルのユーザーフォームにあるテキストボックスへの値代入

    エクセルのユーザーフォームにあるテキストボックスへの値代入 お世話になります. エクセルのシートの入力を,ユーザーフォームを使って入力させています. 新規の場合は空欄のフォームがでるのですが,既存の列を編集するには編集用のフォームで行っています. フォームにはテキストボックスが15個(Textbox1からTextbox15まで)あり,Textbox1はCells(*,1)Textbox2はCells(*,2)というふうにセルの列との関連付けがあります. この規則性を上手く使おうと,For Nextを使っていきたいのですが, Dim r As Integer Dim i As Integer Dim t As String r = ActiveCell.Row For i = 1 To 15 t = "TextBox" & i t = Cells(r, i).Value Next i と,ここまで入力をしてみたものの,値の代入がうまくいきません. MsgboxでCells(r, i)の動きは確認できているので,おそらく,TextBox & iのところが原因と思われますが・・・ どのように修正すればよろしいでしょうか?教えてください.