- JavaScript 3
742 :デフォルトの名無しさん[sage]:2014/07/20(日) 14:17:39.90 ID:w7G2rcj5 - 質問です。現在、selectのidごとに関数を呼び出していますが、もっと
簡略化してどのオプションから選択されたかに変えることはできるでしょうか? $(function(){ $("#f1").each(function(){ var pos; function call_list(){省略} $(this).each(function(){call_list();}); $("#sel1").change(function(){ pos = $("#sel1 option:selected").val(); call_list(); }); $("#sel2").change(function(){ pos = $("#sel2 option:selected").val(); call_list(); }); }); }); </script> </head> <body> <form id="f1"> <select id="sel1"> </select> <select id="sel2"> </select> <select id="sel3"> </select> </form> </body>
|
- JavaScript 3
743 :デフォルトの名無しさん[sage]:2014/07/20(日) 14:23:50.40 ID:w7G2rcj5 - 省略部分
$.ajax({ url:"ajax_call.php" ,type:"post",data:{"send":pos} }).done(function(ret){ //alert(ret); $("#sel2").children().remove(); $("#sel3").children().remove(); var i; var sels = new Array("#sel1","#sel2","#sel3"); var pack = ret.split(":"); for( var i=0 ; i < pack.length; i++){ var sep = pack[i].split("@"); for(j=0;j< sep.length -1;j++){ var option = $("<option>"); var opt = option.html(sep[j]); option.val(sep[j]); var sel = opt.appendTo(option); sel.appendTo(sels[i]); } } }).fail(function(){ alert("error");
|
- + JavaScript の質問用スレッド vol.117 +
53 :デフォルトの名無しさん[sage]:2014/07/20(日) 14:34:17.97 ID:w7G2rcj5 - 総合スレから飛んできました。現在、selectのidごとに関数を呼び出していますが、もっと
簡略化してどのオプションから選択されたかに変えることはできるでしょうか? $(function(){ $("#f1").each(function(){ var pos; function call_list(){省略} $(this).each(function(){call_list();}); $("#sel1").change(function(){ pos = $("#sel1 option:selected").val(); call_list(); }); $("#sel2").change(function(){ pos = $("#sel2 option:selected").val(); call_list(); }); }); }); </script> </head> <body> <form id="f1"> <select id="sel1"> </select> <select id="sel2"> </select> <select id="sel3"> </select> </form> </body>
|
- + JavaScript の質問用スレッド vol.117 +
54 :デフォルトの名無しさん[sage]:2014/07/20(日) 14:35:17.73 ID:w7G2rcj5 - 省略部分
$.ajax({ url:"ajax_call.php" ,type:"post",data:{"send":pos} }).done(function(ret){ //alert(ret); $("#sel2").children().remove(); $("#sel3").children().remove(); var i; var sels = new Array("#sel1","#sel2","#sel3"); var pack = ret.split(":"); for( var i=0 ; i < pack.length; i++){ var sep = pack[i].split("@"); for(j=0;j< sep.length -1;j++){ var option = $("<option>"); var opt = option.html(sep[j]); option.val(sep[j]); var sel = opt.appendTo(option); sel.appendTo(sels[i]); } } }).fail(function(){ alert("error");
|
- + JavaScript の質問用スレッド vol.117 +
55 :デフォルトの名無しさん[sage]:2014/07/20(日) 14:37:11.95 ID:w7G2rcj5 - 補足
ajax,call.phpではMysqlに接続し、コールした値を連結してretに返します。@と:は区切り記号として使っているだけです
|
- JavaScript 3
745 :デフォルトの名無しさん[sage]:2014/07/20(日) 14:38:42.01 ID:w7G2rcj5 - ありがとう、逝ってきます。回答なしならまた戻ってくるかも知れません
|
- JavaScript 3
757 :デフォルトの名無しさん[sage]:2014/07/20(日) 15:56:07.76 ID:w7G2rcj5 - ありがとうございます、貼り替えてみて見事に動きませんでしたが、直したい部分はだいたい分かりました
|
- + JavaScript の質問用スレッド vol.117 +
56 :デフォルトの名無しさん[sage]:2014/07/20(日) 16:07:27.56 ID:w7G2rcj5 - 向こうのスレで親切に回答してくれました。ありがとうございます
|
- JavaScript 3
761 :デフォルトの名無しさん[sage]:2014/07/20(日) 16:19:09.79 ID:w7G2rcj5 - 肝心のPHP文を見せてないですから無理もないですが、色々なテクニックが見られ、非常に
勉強になりました。まだ、理解できてない(無名関数の部分とか)所もいくつかありますが、 これもぜひ追っていきたいです ちなみに、作成していたのは連動型プルダウンで、PHPからDBに接続し、コールされた値をつなげて retに返すというものです。
|
- JavaScript 3
764 :デフォルトの名無しさん[sage]:2014/07/20(日) 16:28:19.89 ID:w7G2rcj5 - xamppなのでjson使えません…orz
|