• 締切済み

リンクの制御と値を渡すには?

ショッピングカートを作っており商品の並び替えを実装させたく 新着順,価格の安い,価格の高い順でソートさせたく思っております。 基本的にphpとmysqlで行うのですがリンクの制御についてはjsに なるものかと思い方法について悩んでおります。 説明が難しいのですがやりたい事は以下の通りです。 1.デフォルトの並び順の時は並び替えのリンクはクリックできる状態 2.新着順で並び変えた場合、他の並び順になるまで新着順のリンクはクリックできない (他の並び順の場合も同様) 3.新着順であればflg=1、価格の安い順であればflg=2、価格の高い順であればflg=3 のようにphpに任意の値を渡したい この値によりphpで条件を設定しそれぞれのsql文で実行したいと 思っているのですがjsの部分が全くわからずなのですがどのように すればいいものでしょうか? 他の部分ではありますがjqueryを使用しておりこれを利用し簡単に 実装できないものかと探してみたのですが情報が見つかりませんでした。 絶対にjqueryを利用してという事ではないのですがおわかりになる方が いらっしゃいましたら宜しくお願い致します。

  • dcx147
  • お礼率33% (214/636)

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

PEARはよく知りませんが… >hoge.com/products/2/1/1/のようにパラメーターが増えて >いってしまいます って、それが、予定の処理なのでしょうか? products/の後がPageで、その次の/の後はflagというように、規則性がないとどうなってしまうのでしょうか?? というか、hoge.com/products/2/はhoge.com/products/index.php?page=2に戻しているとか、あるいはhoge.com/products/2/1/1/はhoge.com/products/2/1/に戻るようにはなっていないのでしょうか? (サーバ側では、一つのphpで処理をしているのではないのでしょうか?) >phpでif,elseを用いてリンク制御すればクリアできそうな問題 >なのですがjsで制御できないものと思い質問させて頂きました。 もちろん、jsでも制御可能ですが、if,elseを用いて制御することに変わりはありません。(同じことをやるのですから) さらには、ブラウザの表示内容を書き換えてしまう(ページ移動する)のであれば、送信前のページのスクリプトで制御しても、その後に書き換えられてしまうので、新しい(phpから送る)ソース内にスクリプトがあって、そこにパラメータを渡してあげる必要が出てきます。それなので、phpで処理してしまったほうが簡単に思えるのですが?(javascript不要になりますし) phpからの表示が一部分のみ(フレームなどを用いて)の書き換えなどの場合であれば、書き換えのないメニュー(?)のリンク部分の処理等はjavascriptで行った方がよさそうには思えますけど。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

並び替えなどはサーバ側(phpなど)で行うのですよね? 結果を再表示するのでしょうから、通常のリンクにサーチ部分を指定することでデータを送信することが可能です。  http://www.yyy.zzz/aaa/bbb.php?flg=1 これだと、普通のリンクなのでjavascriptは不要。 ただし、ブラウザのアドレス欄にサーチ部分も表示されることになります。 (ご質問の内容の場合、表示されてもあまり問題なさそうですが) 表示されないようにするなら、hiddenのformを用意しておいて、スクリプトで これに値をセットしてsubmitする方法が簡単。  <form action="~~" method="post" id="form0">   <input type="hidden" name="flg">  </form> <script> var f=document.getElementById('form0'); f.elements('flg').value=2; f.submit(); </script> みたいな感じ。 Ajaxでやるのもないことはないけど、結果を再表示するのだから、わざわざ面倒な方法を使う必要もないでしょう。 並び替え用のリンクのクリックの可/不可もphp側で処理して送ればよいので、javascriptでやる必要もないでしょう。

dcx147
質問者

補足

お返事ありがとうございます。 >並び替えなどはサーバ側(phpなど)で行うのですよね? 予定としてはjsでphpに任意の値を送り値を判別し適切なsql文を 作成し並び替えはphpで行います。 ややこしいのですがPEARのページャーでページング処理をしておりurlが デフォルト:hoge.com/products/index.php 1ページ目:hoge.com/products/index.php?page=1 2ページ目:hoge.com/products/index.php?page=2 のようなurlになるのですがmod_rewriteで実際にブラウザに表示されるのは デフォルト:hoge.com/products/ 2ページ目:hoge.com/products/1/ 2ページ目:hoge.com/products/2/ のようなurlになります。 例えば<a href="flg=1">新着順</a>のようにそれぞれにパラメーターを つけるとhoge.com/products/2/1/のようなurlになるのですがこの状態で さらに新着順をクリックするとhoge.com/products/2/1/1/のように パラメーターが増えていってしまいます。 >並び替え用のリンクのクリックの可/不可もphp側で処理して送ればよいので、javascriptでやる必要もないでしょう。 確かにphpでif,elseを用いてリンク制御すればクリアできそうな問題 なのですがjsで制御できないものと思い質問させて頂きました。

関連するQ&A

  • 動的 aタグ リンク制御

    http://bit.ly/b9owF1 ECサイトを運営しております。 上記サイトの右側にありますソート機能の様に、Javasctipt でリンクの制御をしたいと思いっています。 ※上記サイトはサンプルです。 上記のサイトですと、「メーカー順 | 商品名順 | 価格順」とあり、 価格順でソートされている状態では、価格順が太字 & リンク解除となります。 他のリンクも同様に、クリックされてソートされている並び方のリンクが解除され太文字になります。 これを Javascript で実装したいと思っています。 ※HTML は同一のものを使用するので、動的に変化する事が望ましいです。 ※それぞれの URL はユニークなものになっています。 ※ URL にパラメーター(&sort=xxx)を加える形になります。 お知恵をご拝借ください。 何卒、宜しくお願い申し上げます。

  • PHPでレイティングバーの値を取得

    下記のようなJQuery スクリプトにおいて、 レイティングバーの値を、PHP変数に取得するには どうすればいいのでしょうか。ご指導お願い致します。 ちなみに、 $manzokudo = $_POST['rating']; var_dump($manzokudo); で、ダンプしたところ、中身がNULLでした。 【detail.php】 <link rel="stylesheet" type="text/css" href="jquery.rating.css"> <script type="text/javascript" src="jquery-2.1.3.js"></script> <script type="text/javascript" src="http://code.jquery.com/jquery-migrate-1.1.0.js"></script> <script type="text/javascript" src="jquery.rating.js"></script> <script type="text/javascript"> $(function () { // レーティングバーを有効化 $('.starbar').rating({ cancel: '消去', // 「キャンセル」ボタンのテキスト // ★アイコンをクリックした時の処理 callback: function(value){ // detail.phpに対してレイティングバーの値を送信 $.post( 'detail.php', { rating: value }, function(){ window.alert('「' + value + '」をつけました。'); } ); } }); }); </script> </head> <body> <?php $_POST[] ?> </body> </html>

  • リンク先を変えたいのですが

    scrolltopcontrol.jsのjQueryを使って トップの位置に戻るページを作りましたが クリックした時のリンク先を変えたいのですが どこをどのように書き換えればよいのでしょうか http://から始まる任意のページにリンクするようにしたいのです (ページ内ではなく) どなたかお教えいただけますでしょうか 何卒宜しくお願い致します -------------------- 以下のサイトを参考にして作業をしています 【ページのトップに戻る】 http://iuser.jp/webjin/archives/2009/11/jquery-scroll-to-top-control.html 宜しくお願い致します

  • jquery複数のcheckboxの値について

    どうも、はじめまして、jqueryに興味をもった初心者です。 jqueryを利用で、phpファイルにcheckboxの値を渡し、loadでphpファイルを読み込みたいのですが、うまくいきません。。ご存知の方いましたら、 お手数ですが、教えてください。。 環境、php5.1,jquery1.4, ソース <!--html側--> <html> <head> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="chk.js"></script> <title></title></head> <body> <input type="checkbox" name="test[]" id="test" value="1">test1 <input type="checkbox" name="test[]" id="test" value="2">test2 <input type="checkbox" name="test[]" id="test" value="3">test3 <input type="checkbox" name="test[]" id="test" value="4">test4 <input type="submit" value="sub" id="sub"> <div id="hbox">ここにロードしたい</div> </body> </html> //chk.js --------------------------- $(function(){ $("#sub").click(function () { var chk = $(".@test:checkbo[name^='test[]']:checked") .val(); $("#hbox").load("form.php",{test:chk}); }); }); //form.php ---------------------------- <?php echo htmlentities( print_r($_GET, true) ); ?> 以上がソースです。。。このソースだと、 checkを入れた値1つしか、phpに渡すことができません。。 checkを入れた値をすべて、phpに渡し、loadしたいのですが、 方法が分からず困ってます。 ご存知の方いましたら、お手数ですが、 分かりやすく、教えていただけませんでしょうか お願いいたします。

  • jqueryのプラグインdroppy.jsについて

    WEBデザイン初心者です。 グローバルナビ部分を、ドロップダウンリストにしたいなと思い、jqueryで実装しようと思っています。 調べてみたところ、よく使われているプラグインにdroppy.jsというものがありましたが、 どの紹介サイトでもjQueryのサイトにリンクされています。 ただ、そこから、ダウンロードファイルが見つかりません。 もしかして、jQueryサイトでは取り扱わなくなったプラグインなのでしょうか。 あまりにもdroppyの事例が多いので、できれば導入したいのですが、分かる方いれば、よろしくお願いします。

  • 子ウィンドウから親ウィンドウへのリンク

    jquery.popupwindow.js を使用してポップアップを開いております。 その開いた子ウィンドウに外部リンクを張り、リンクをクリックした時に その子ウィンドウは閉じて、親ウィンドウのリンク先を変える方法を教えいただけると助かります。

  • PHPからjavascriptへGETで値を渡すとき

    初歩的な質問で失礼いたします。 PHPからjavascriptへGETで値を渡すときにマルチバイト文字が文字化けしてしまいます。 javascriptのjQueryというライブラリを利用しています。 具体的には、 -------------- test.js -------------- var url = 'test.php?code=' + code; $.get(url, function(data){ alert(data); } -------------------------------------- --------------- test.php ------------- $input = $_GET['code'];  ・・・mysqlの処理・・・ echo $output; --------------------------------------- という処理をしています。 test.js → test.phpへ渡す値はマルチバイトではないので問題ないのですが、 test.php → test.jsへ返す値はマルチバイトで文字化けしてしまいます。 php側でrawurlencode関数でエンコードしてから、javascript側でdecodeURI関数を使用してデコードしたのですが、うまくデコードできませんでした。 恐らくデコードの仕方が悪いんだと思うんですが。。。 分かりにくい説明で恐縮ではございますが、ご回答をお願いいたします。 宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • datepickerで日付の値を取得したい

    jQueryのdatepickerを実装しました。 そこに、jquery.validate.jsを当てて、空欄の時にエラーが出るようにしました。 しかし、日付を選択しても、エラーメッセージが出てしまいます。 (※日付をカレンダーで選択後、再び日付の欄をクリックするとエラーが消えます。) どうやら、日付の値を取得していないような気がしています。 どなたかご存じの方がいらっしゃいましたら、教えていただけると幸いです。 <script type="text/javascript"> $(function(){  $("#datepicker").datepicker() }); </script> <script> jQuery(".validDate").validate({ expression: "if(VAL != '') return true; else return false;", message: "希望日をお選びください。" }); </script> <input type="text" name="reservationdate" class="rDate validDate" id="datepicker"/>

  • 外部ファイルを読み込んだhtmlをinclude

    外部ファイルを読み込んだhtmlをincludeしたいです。 ディレクトリの階層は、 index.php style.css /pic/picture.html /pic/css/style1.css /pic/css/style2.css : /pic/css/style13.css /pic/js/jquery1.js /pic/js/jquery2.js : /pic/js/jquery15.js : (画像などが他にもいっぱい) となっています。 ----- picture.html内には <link rel="stylesheet" type="text/css" href="css/style1.css"> <link rel="stylesheet" type="text/css" href="css/style2.css"> : <link rel="stylesheet" type="text/css" href="css/style13.css"> <link rel="stylesheet" type="text/css" href="js/jquery1.js"> <link rel="stylesheet" type="text/css" href="js/jquery2.js"> : <link rel="stylesheet" type="text/css" href="js/jquery15.js"> : と書かれています。 ---- このときindex.phpのbody内に <?php include('./picture.html'); ?> とした場合、相対パスによる記述なのでpicture.html以外のcssやjsは適用されませんよね。 しかし/pic/内にあるすべてのpicture.htmlに関係するファイルは非常に数が多いので、これらすべてをincludeするのは厳しいです。 すべての外部ファイルを読み込んだ状態のpicture.htmlをbody内に表示したいのですが、そんなことは可能でしょうか。 どなたかご教示ください。どうかよろしくお願いします。

    • ベストアンサー
    • PHP
  • perlからphpに変数の値を渡したい

    素人質問で恐縮です。 perlからphpに変数の値を渡す事は可能でしょうか。 同一サーバー内に、/hoge/aaaa.pmと/sample/bbbb.phpがあります。 置き場所はそれぞれで特に関連性はありません。 aaaa.pm内で定義した my $data = "あいうえお"; のような変数を、 bbbb.php内で受け取って使いたいです。 jQuery.ajaxでphpとjs間で変数の受け渡しが可能なのですが、 そんなイメージでやり取りできたらいいなと思っています。 難しい話であれば諦めます。 perlもphpも素人ですが、簡単なやり取りで済みそうなら取り入れたいです。 不明点などありましたら、ご質問ください。 よろしくお願いいたします。

    • ベストアンサー
    • Perl