• 締切済み

日本語を含んだデータの条件分け

makerとtitleを 選択して選択された物だけが残るようなプログラムを組んでいます。 makerは数字で値を与えているのですがtitleが日本語になりうまくsqlのデータベースと一致しません。 $ntitleの配列には既にmakerでsortされたsqlのtopic_titleの値が入っています。(echoで確認済み) $forum_selection_titleをHP内に表示して利用する形になっています。 $forum_selection_title = '<select name="sorttitle" onChange="parent.window.location.href=document.maker.sorttitle.value,$_GET[\'sorttitle\']=$sorttitle">'; for ($j=0; $j<count($ntitle); $j++) { $forum_selection_title .= "<option value=http://~~~/viewforum.php?forum=1&sortmaker=$sortmaker&sorttitle=$ntitle[$j] if($sorttitle == $ntitle[$j]){print ' selected=selected';}>$ntitle[$j]</option>"; } 上記で飛んだURLから下記のデータを抽出します。 $sql = 'SELECT uname, post_time FROM 'bb_topics' WHERE (forum_id = '.$forum.' AND maker = '.$sortmaker.' AND topic_title = '.$sorttitle.') この際日本語が混じるせいかtopic_title = '.$sorttitle.'の部分が起動していません。 日本語が混じってる状態で条件付けをするやり方がわかる方いらっしゃいましたらよろしくお願いします。

  • PHP
  • 回答数1
  • ありがとう数0

みんなの回答

  • cybert
  • ベストアンサー率56% (18/32)
回答No.1

えっとまず。 PHPの何ですか? OSは何ですか? エラーは何ですか? プログラムのソースをコピペするのは良いのですが、 問題がある箇所をシンプルに書いてもらえませんか?

関連するQ&A

  • select値でのフォームのaction値の変更

    以下のようなフォームでselectの値によって PHPでactionのURLを変更させるようなことは出来るでしょうか。 <form name="form" method="GET" action="ここをselect値により変更"> <input type="text" name="word" id="word" value="" /> <select name="select" id="select"><option selected="selected" value="01">値01</option> <select name="select" id="select"><option selected="selected" value="02">値02</option> <select name="select" id="select"><option selected="selected" value="03">値03</option> </select> </form> 以上、どうぞ宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • 日本語文字列の正規表現

    いつもお世話になっております。 日本語文字列を含む正規表現で悩んでおります。 【比較対象の文字列】 $str1 = "<select name='se'><option value='あいう'>あいう</option><option value='abc'></option></select>"; 【正規表現で置換させたいところ】 $text = "あいう";//ここの箇所だけoption valueが変わるので変数にいれています。 <option value='$text'>$text</option>という文字列が一致したら <option value='$text' selected>$text</option>にselectedを追加して置換したいのです。 下記内容で作ってみたのですが どの辺りがダメなのか検討がつきません。。 恐らくダメなところだらけかと思うのですが。 分かりづらい説明で申し訳ないのですが どなたかご教授お願いします。 $rep ="<option value='".$text."' selected>".$text."</option>"; preg_replace("/<option\s+[^>]*value\s*=\s*([\'\"]?)".$text."([\'\"]?)\s*w+>".$text."<\s+\/\s+option\s+>/i",$rep,$str1,$str2);

    • ベストアンサー
    • PHP
  • プルダウンで選択された値を保持

    お世話になります。 PHPとMysqlでプログラムを作成しています。 プルダウンメニューを選択し、Submitボタンを押した後も選択された値を保持したままの状態にしたいのです。 以下のようなプログラムでdata2の場合だと保持ができますが、dataの場合は「すべて」に戻ってしまいます。 以上・未満を使用する場合の値の保持はどのようにすればよいのでしょうか? 宜しくお願い致します。 <select name='data'> <option value=' ' <?php if($data==" "){print " selected";} ?>>すべて <option value=' AND (data >= 1.8 AND data < 2.0) '<?php if($data>=1.8 AND $data < 2.0){print " selected";} ?>>1.8GHz以上 2.0GHz未満</option> <option value=' AND (data >= 2.00) '<?php if($data>=2.00){print " selected";} ?>>2.0GHz以上</option> <option value=' AND (data >= 2.80) '<?php if($data>=2.80){print " selected";} ?>>2.8GHz以上</option> </select> <select name='data2'> <option value='%' <?php if($data2=="%"){print " selected";} ?>>すべて <option value='1MB'<?php if($data2=="1MB"){print " selected";} ?>>1MB</option> <option value='2MB'<?php if($data2=="2MB"){print " selected";} ?>>2MB</option> </select> <input type="submit" value="絞り込む" name="submit1">

    • ベストアンサー
    • PHP
  • PHPでセレクトメニュー

    こんにちは。 PHPでDBから読み込んだ値によってセレクトメニュー、selected のタグが付く場所を変えたいんですが、自分の知識だけだと長文になってしまい短くできないものか悩んでます。 例えば値が1-3で、対応する値がA-Cだとすると、 <select name="menu"> <option value="1" selected>A</option> <option value="2">B</option> <option value="3">C</option> </select> で、データを受け取った値によって selectedの位置を"2"の後、"3"後に変更したいです。 自分で書くと <?php if ( $row["menu_c"] == 1){ <option value="1" selected>A</option> <option value="2">B</option> <option value="3">C</option> }elseif( $row["menu_c"] == 2){ <option value="1">A</option> <option value="2" selected>B</option> <option value="3">C</option> ・・・ <option value="3" selected>C</option> } ?> のようになり、項目数分だけ毎回書き足す事になってしまします。 お分かりになる方ご教授頂けないでしょうか。

    • ベストアンサー
    • PHP
  • GETで送られたデータを元に必要なSQL文を作る

    FORMのSELECTなどで選択されたデータをGETで送り、 それをもとにSQLの文章を作りたいと思っています。 $yyy = "SELECT * FROM table WHERE 1 AND {$a} < mysqlA AND {$b} < mysqlB AND mysqlC IN({$b}) ・・・"; のようにすればSQLの文章を作れると思いますが、FORMで選択されていないデータを対象にした文章までも入ってしまいます。 FORMより送られたデータだけのSQLの文章を作りたいです。 下記のようなやり方以外に良い方法はありますか? MYSQLのデータ ------------------------------- mysqlA | mysqlB |  ・・・ 4     |  55  |  ・・・ 5     |  33  |  ・・・ 77    |  17  |  ・・・ :       :     : :       :     : <?php  :  : $lll = array( "getA"=>"mysqlA", "getB"=>"mysqlB", "getC"=>"mysqlC", "getD"=>"mysqlD", "getE"=>"mysqlE",   : ); $yyy = 'SELECT * FROM table WHERE 1'; foreach($lll as $key=>$val){ if(!isset($_REQUEST[$key]) or $_REQUEST[$key]==='') {$_REQUEST[$key]="";} switch($key){ case "getA": $ga = explode("+", $_REQUEST[$key]); $yyy .= ' AND {$ga[0]} <= {$val} AND {$val} < {$ga[1]}'; break; case "getB": $yyy .= 'AND {$val} BETWEEN CURDATE() - INTERVAL {$_REQUEST[$key]} YEAR AND CURDATE() - INTERVAL 1 DAY'; break; case "getC": case "getD": case "getE": $yyy .= ' AND {$_REQUEST[$key]} <= {$val}'; break; ~ 他のcaseが続く ~ } } $ddd = new PDO($host,$user,$pass); $sss = $ddd->prepare($qqq); $rrr = $sss->fetchAll(PDO::FETCH_ASSOC);  :  : ?> <html xml:lang="ja" lang="ja"> <head> <title></title> </head> <body> <form action="#">   : <select name="getB" onchange="changeDate()"> <option value="0"<?php if(isset($_REQUEST[$getB]) && $_REQUEST[$getB]==0){echo ' selected="selected"';} ?>>0</option> <option value="20"<?php if(isset($_REQUEST[$getB]) && $_REQUEST[$getB]==20){echo ' selected="selected"';} ?>>20</option> <option value="50"<?php if(isset($_REQUEST[$getB]) && $_REQUEST[$getB]==50){echo ' selected="selected"';} ?>>50</option> </select>   :   :

    • 締切済み
    • PHP
  • IDをvalueの値でなく、class名から取得したい

    HTML上でvalue値を日本語にしてスマートに値を取得したいため、 value値でなくclass名でidnameに引き渡したいです。 (value)を(className)にしてみる等試行錯誤してみましたが どうやら見当違いのようです。お知恵を拝借したく思います。 <html> <head> <TITLE>Webサイト</TITLE> <STYLE TYPE="text/css"> <!-- .secondpulldown {display: none;} --> </STYLE> </head> <body> <script type="text/javascript"> function waySelect() { document.getElementById('select01').style.display = 'none'; document.getElementById('select02').style.display = 'none'; document.getElementById('select03').style.display = 'none'; } function SetSubMenu( idname ) { waySelect(); if( idname != "" ) { document.getElementById(idname).style.display = 'inline'; } } </script> <select name="oya" id="hiragana" onchange="SetSubMenu(value);"> <!--ここを(className)にするのは見当違いですか?)--> <option value="select01" class="select01">あいう</option> <option value="select02" class="select02">えおか</option> <option value="select03" class="select03">きくけ</option> </select> <!-- *------下に出現------* --> <br> <br> <select id="select01" class="secondpulldown" onchange="text01(this);"> <option value="0" selected>選択して下さい</option> <option value="1">ああああ</option> <option value="2">いいいい</option> <option value="3">うううう</option> </select> <select id="select02" class="secondpulldown" onchange="test(this);"> <option value="0" selected>選択して下さい</option> <option value="1">ええええ</option> <option value="2">おおおお</option> <option value="3">かかかか</option> </select> <select id="select03" class="secondpulldown" onchange="test(this);"> <option value="0" selected>選択して下さい</option> <option value="1">きききき</option> <option value="2">くくくく</option> <option value="3">けけけけ</option> </select>

  • JavaScript の条件分岐?について

    メールフォーム内でドロップダウンメニューを使用しており 確認/修正等でフォーム画面に戻った時に選択されていた項目が 保持されるような設定で以下のような HTML 及び JavaScript を記述してます。 ( 実際には HTML 内で部分的に php echo を使用しております ) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>テスト</title> </head> <body> /* **************************************************************** 確認/修正等でフォーム画面に戻った時に入力した情報が消えない設定 ドロップダウンリスト用 **************************************************************** */ function MenuValue($v,$r) { if(!empty($_POST[$v])) { if($_POST[$v] == $r){ return " selected='selected'"; } } } <pre> お問い合わせ内容のカテゴリ <select name="menu" id="menu"> <option value="未選択" selected>▼選択して下さい</option> <option value="ミカン">ミカン</option> <option value="リンゴ">リンゴ</option> <option value="イチゴ">イチゴ</option> <option value="バナナ">バナナ</option> <option value="その他">その他</option> </select> </pre> </body> </html> 上記ソースでブラウザ上で動作テストしますと ドロップダウンリスト内の項目を何も選択しなかった場合 FireFox Validator では 【 エラー: duplicate specification of attribute "SELECTED" 】 となってしまいます。 その時ブラウザ上で表示されてるページの HTML ソースを確認すると・・・ <pre> お問い合わせ内容のカテゴリ <select name="menu" id="menu"> <option value="未選択" selected selected='selected'>▼選択して下さい</option> <option value="ミカン">ミカン</option> <option value="リンゴ">リンゴ</option> <option value="イチゴ">イチゴ</option> <option value="バナナ">バナナ</option> <option value="その他">その他</option> </select> </pre> となっております。 未選択以外の項目を選択した場合はエラーは出ません。 なので Select属性 を外してみると FireFox Validator でのエラーは解消されますが Another HTML-lint gateway では 【 どの <OPTION> にも SELECTED属性 が指定されていません 】 と言われてしまうので SELECTED属性 は外したくありませんし・・・ 前出の JavaScript の条件付けを色々と変更して試してますが当方 JavaScript はあまり詳しくないのでどなたかご教授頂ければと思い 質問投稿させて頂きました。 どなたかご回答よろしくお願い致します。

  • javascript:データを日本語で渡す場合のプルダウン連動選択方法

    javascript:データを日本語で渡す場合のプルダウン連動選択方法について こういうサンプルがあったのですが http://q.hatena.ne.jp/1157378504 フォームで日本語をvalueに入れてCGIで送信したいので 受信側のValueの日本語「あああ」の前にAあああといれて送信側の値Aと最初の一文字だけ 比べてプルダウンを選択したいのです。 上記の例は、日本語を入れた場合、IEではデータの渡しができますが他ブラウザでは動作しません。 最低でもFireFox、Opera、Safariで動作したいです。 以下みたいにフォーム部分はしたいのです。 【送信側】 <html> <body> <a href="2.html?myList=A">メニューあああ</a> </body> </html> 【受信側】 <html> <body onload="setDropDownList();"> <form> <select id="myList" >    <option value="Aあああ">あああ</option> <option value="Bいいい">いいい</option> <option value="Cううう">ううう</option> </select> </form> </body> </html> <script type="text/JavaScript"> <!-- : : どうかご教授お願いします。 また、結果が同じであれば他の方法でも大丈夫なので なにかいい方法がありましたら教えてください!!

  • PHP

    PHPでテキストで読み込んだ値をselectedするにはどうしたらよろしいでしょうか? <select name="jikan"> <option value="1">01</option> <option value="2" selected>02</option> <option value="3">03</option> <option value="4">04</option> <option value="5">05</option> <option value="6">06</option> <option value="7">07</option> <option value="8">08</option>

    • ベストアンサー
    • PHP
  • ブラウザの戻るボタンを押したときのデータの保持の仕方

    頻繁に書き込みして申し訳ありません。 どなたかお手すきでしたら、稚拙な質問にお付き合いお願い致します。 前回セレクトメニューについて教えて頂いたのですが、今回もセレクトメニューに関しての質問です。 IEでの話なのですが、セレクトメニュー1・2を選択しsubmitボタンで次のページに行き、 ブラウザの戻るボタンで戻ってきたときにセレクトメニュー2の方のデータ(value)だけ保持できていません。 前にIEはそのような仕様だという話を聞いたのですが、その時もこちらで質問させてもらいました。 その時はselectタグにidを仕込んでおき、「window.onload」でgetElementByIdを使用するやり方を 教わったのですが、今回はそれでうまくいきません。 ネットで検索していてcookieを使用してデータを保持しておくというやり方も見かけたのですが、 一番効率のよいやり方はどのようなものになるのでしょうか。 どうかよろしくお願いします。 以下ソースとなります。 <html> <head> <title>テストテスト</title> <script language="JavaScript"><!-- menuItem = [ [ ], ["あああ","あああ2","あああ3","あああ4","あああ5"], ["いいい","いいい2"], ["ううう","ううう2","ううう3"], ["えええ","えええ2","えええ3","えええ4"] ]; function clearOption(len){ var i; for (i=0; i<len; i++){ document.aaa.bbb.options[i] = null; } } function setMenuItem(n){ optlen = document.aaa.bbb.options.length; while(optlen > 0){ clearOption(optlen); optlen = document.aaa.bbb.options.length; } if (menuItem[n].length > 0){ for (i=0; i<menuItem[n].length; i++){ document.aaa.bbb.options[i] = new Option(menuItem[n][i],menuItem[n][i]); for( j=1; j<=4; j++ ){ if( document.aaa.Maker.selectedIndex == [j] ){ document.aaa.bbb.options[i].value = i+([j]*10); } } } } } window.onload = function(){ setMenuItem(document.getElementById('q1').value); //alert(document.getElementById('q2').value); } // --></script> </head> <body> <form name="aaa" action="./next.html" method="POST"> <select name="Maker" id="q1" onChange="setMenuItem(this.selectedIndex)"> <option value="" selected>--- 選択してください ---</option> <option value="1">ひとつ</option> <option value="2">ふたつ</option> <option value="3">みっつ</option> <option value="4">よっつ</option> </select> <select name="bbb" id="q2"> <option value="" selected>--- 選択してください ---</option> </select> <input type="submit" name="ok" vakue="ok"> </form> </body> </html>