- 1 名前:デフォルトの名無しさん mailto:sage [2021/11/10(水) 15:24:24.80 ID:jxD2VXPG0.net]
- JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-6のテンプレを読んだ上で質問してください。次スレは>>950が>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください ■質問を書く上で (1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。 (2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。 (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など) (3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。 (4) 常に自発的に調べる心構えを持ってください。 具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。 わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。 (5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。 (6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。 ※必ず「問題の事象が再現されること」を確認してください。 必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。 (7) サンプルコードに HTML が含まれる場合は validator.w3.org/ で [Check] してみてください。 (8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。 (9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。 (10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。 ※前スレ + JavaScript の質問用スレッド vol.123 + https://mevius.5ch.net/test/read.cgi/tech/1491143438/ VIPQ2_EXTDAT: checked:vvvvvv:1000:512:: EXT was configured
- 829 名前:デフォルトの名無しさん [2022/07/02(土) 08:46:33
]
- [ここ壊れてます]
- 830 名前:.37 ID:f8ozX99S0.net mailto: 代入してるよ []
- [ここ壊れてます]
- 831 名前:デフォルトの名無しさん [2022/07/02(土) 08:46:35.20 ID:f8ozX99S0.net]
- 代入してるよ
- 832 名前:デフォルトの名無しさん (ワッチョイ 2d01-UYEv [114.48.125.16]) mailto:sage [2022/07/02(土) 09:07:06 ID:7+dzE5OL0.net]
- >>809
あなたにとってはそうなんだろうが、letの方が宣言か一箇所で済む分、わかりやすく感じる 最も、そのコードは三項演算子で1行に出来るから比較する必要はないが
- 833 名前:デフォルトの名無しさん (ワッチョイ 2d01-UYEv [114.48.125.16]) mailto:sage [2022/07/02(土) 14:56:48 ID:7+dzE5OL0.net]
- とりあえず、[180.12.82.129]は何か反応したら?
- 834 名前:デフォルトの名無しさん [2022/07/02(土) 18:09:44.92 ID:5kfVxUizM.net]
- iPadでJavaScriptの勉強したいんやけど可能?
一応外付けのマウスキーボードはあって、OracleのJava bronzeを取りたいんたけど。
- 835 名前:デフォルトの名無しさん [2022/07/02(土) 18:11:06.76 ID:f8ozX99S0.net]
- >>814
そうなんですか
- 836 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 18:20:43.79 ID:TQdsQirm0.net]
- var は使っちゃいけない。
スコープとか、色々とややこしいから、バグるだけ そういうのを研究していない人には分からないし、 研究するだけ時間の無駄 varを使うな、という結論だけを使えばよい
- 837 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 18:21:59.34 ID:7+dzE5OL0.net]
- >>817
結局、何を知りたかったのか さっぱり、わからないな
- 838 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 18:35:23.42 ID:6gDxbKhpM.net]
- >>816
JavaかJavaScriptかはっきりしてくれ
- 839 名前:デフォルトの名無しさん [2022/07/03(日) 21:22:54.13 ID:u2gGVzOi0.net]
- javascriptでフォーム作ってます。
java scriptからメールを送る方法ってどんなのがありますでしょうか?
- 840 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 21:32:55.50 ID:W01+4hlo0.net]
- >>821
マルチポスト先でいわれたSMTPサーバは調べた? https://mevius.5ch.net/test/read.cgi/hp/1478002550/652 https://qiita.com/ryunakae/items/0ceed3728d46ee67d1f2
- 841 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 22:51:52.67 ID:qXMK1yPV0.net]
- javascriptでメールの送信は無理!
rubyを使うと簡単にできるYO!
- 842 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 23:26:54.42 ID:C1pvOjRy0.net]
- AWS Lambda/SNS, Ruby など、サーバーが無いと無理
- 843 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 23:41:06.22 ID:W01+4hlo0.net]
- 無理といわれてるが、SmtpJSでは不可能なのか
まあ、俺もクライアントサイドでやろうとは思わんが
- 844 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 23:44:24.18 ID:QHM3Cg280.net]
- ブラウザ上のjavascriptから直にメールを送る機能はないので
822のqiitaで紹介されてるSmtpJSはSmtpJSのサーバーに通常のフォームデータとしてPOSTしてそのサーバーがメール送信を肩代わりしてくれる 信用できないなら自分でサーバーサイドもどうにかする
- 845 名前:デフォルトの名無しさん (ワッチョイ 2d01-UYEv [114.48.125.16]) mailto:sage [2022/07/03(日) 23:55:04 ID:W01+4hlo0.net]
- SMTPサーバーが必要なのは>>822の通り、理解してる
最も、質問者はずっとスルーしてるが
- 846 名前:メールの質問者@時の旅人 (ワッチョイ 7568-kc9T [112.68.214.52]) [2022/07/04(月) 00:11:28 ID:rXJjm3cQ0.net]
- 皆さま、ご教示ありがとうございます。
smtp.jsを使い、SMTPサーバーはsmtp.jsで紹介されてるSMTPを使用。 試してみたのですが、うまく動かせておりません。 メールは、サーバーサイドからやるのがベターですよね、やっぱり。。
- 847 名前:デフォルトの名無しさん [2022/07/04(月) 06:59:27.99 ID:eZVYpHVcd.net]
- var yyy =~/g;
var mmm = "$1~”; aaa[0].innerHTML = aaa_html.replace(yyy, mmm); で指定する$1の部分は、mmmの変数で指定するか、 複数の変数を埋めるにはどうしたら良いですか? ようするにyyy以外の変数も埋め込めたい。
- 848 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 07:44:5
]
- [ここ壊れてます]
- 849 名前:1.83 ID:158REP8JM.net mailto: >>829
マッチ結果とは無関係の変数を使いたいってことなら、普通に変数を連結するなりテンプレートリテラルで表現したりすればOK ある程度複雑なことをするつもりなら、別途置換処理用の関数を定義した上でreplace()の第二引数に渡した方が読みやすくなるかも(当然ながら「適切な名付け」が前提) innerHTMLを使っている点については、あえて何も言わないでおく [] - [ここ壊れてます]
- 850 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 08:16:00.18 ID:X+I6pApT0.net]
- >>829
+で結合して代入
- 851 名前:デフォルトの名無しさん (アウアウウー Sa4d-uVV9 [106.146.72.72]) [2022/07/07(木) 08:46:34 ID:hekaiUDAa.net]
- 年月を設定した2段階プルダウンを作成しているのですが、JAVAを深く触ったことがない為アドバイス頂きたいです。
wordpressのデータベースからSQLを使います。Java scriptでプルダウン作成。 設計について Java script→JSONで$(配列)に変える→archive.php→SQL→JSON→Java scriptという流れで良いでしょうか?
- 852 名前:デフォルトの名無しさん (ワッチョイ 2d01-UYEv [114.48.125.80]) mailto:sage [2022/07/07(木) 08:56:00 ID:sGvZpzJo0.net]
- >>832
> JAVAを深く触ったことがない Java関係ある? > Java script→JSONで$(配列)に変える $(配列)とは?
- 853 名前:デフォルトの名無しさん (アウアウウー Sa4d-uVV9 [106.146.72.72]) [2022/07/07(木) 09:00:19 ID:hekaiUDAa.net]
- >>833
JAVAは変換ミスです申し訳ありません。 option valueの値をそのままSQLに渡す事が出来ないとアドバイスもらいましたので、何とかSQLに渡す方法が知りたいです。 また渡したものと一致するデータをSQLで選別してJava scriptに返す必要があります。 コードは以下になります。 <option value="">年を選択</option> <option value="op-a">2021</option> <option value="op-b">2022</option> </select> <select name="op-a"> <option value="">2021グループから選択</option> <option value="op-a-1">1</option> <option value="op-a-2">2</option> <option value="op-a-3">3</option> <option value="op-a-4">4</option> <option value="op-a-5">5</option> <option value="op-a-6">6</option> <option value="op-a-7">7</option> <option value="op-a-8">8</option> <option value="op-a-9">9</option> <option value="op-a-10">10</option> <option value="op-a-11">11</option> <option value="op-a-12">12</option> </select>
- 854 名前:デフォルトの名無しさん (アウアウウー Sa4d-uVV9 [106.146.72.72]) [2022/07/07(木) 09:04:47 ID:hekaiUDAa.net]
- >>833
option valueの値をJSONを使い配列に変えた上でSQLに渡すことを考えておりました。
- 855 名前:デフォルトの名無しさん mailto:sage [2022/07/07(木) 09:57:05.64 ID:D+rw6Zs6M.net]
- >>832
一旦落ち着いて、スレタイと>>1のテンプレを熟読しよう その上で、一連のデータフロー(処理順序と各処理間のインタフェース)の中で「JavaScriptコードに担わせたい機能」をあらかじめ明確化した上で、「同機能の実装上の不明点・疑問点」を質問しよう
- 856 名前:デフォルトの名無しさん mailto:sage [2022/07/07(木) 12:45:33.04 ID:ywWcbjyb0.net]
- 例えば、Ruby on Rails みたいなMVC フレームワークなら、
<%= f.select :pet, [["犬", 1], ["猫", 2]], include_blank: "選択して下さい" %> こういうselect ボックスで、猫を選べば、 データベース(DB)のpet列が、2 で保存される 多分フォーム送信で、value="2" がサーバーへ送られて、 Railsによって、自動的に整数型の2に変換されて、DBへ保存される このように、Railsのようなフレームワークを使うと、 DBのテーブル構築とか、HTMLからDBの各列への対応付けも全自動 SQL 文を文字列で、自分で作ったりしない
- 857 名前:デフォルトの名無しさん mailto:sage [2022/07/07(木) 15:15:03.26 ID:1RhWyS0vd.net]
- JavaScriptってクラス宣言も関数使ってるらしいけど、関数型言語なの?
- 858 名前:デフォルトの名無しさん [2022/07/07(木) 16:06:18.67 ID:8vD+8lwxa.net]
- return {};
- 859 名前:デフォルトの名無しさん mailto:sage [2022/07/07(木) 21:11:15.45 ID:/kE53AS+0.net]
- >>838
もとはschemeを参考にした関数型言語だったのをむりやり関数型言語っぽく仕立てたから クロージャや部分適用は普通に使えるのに対し、thisやコンストラクタやメソッドはなんか 残念な仕様になった。
- 860 名前:デフォルトの名無しさん mailto:sage [2022/07/07(木) 21:11:55.11 ID:/kE53AS+0.net]
- むりやりオブジェクト指向言語っぽく
だな。
- 861 名前:デフォルトの名無しさん [2022/07/07(木) 21:39:11.18 ID:TVMHA1kRr.net]
- console.logが1つしか表示されないんですが、何が原因なんでしょうか?
//オブジェクトを定義するvarは受け取る際にエラーが起きそう再宣言のできるletを選択 let objA = { // プロパティを定義 // キー: 値 year: "2021", month: "1,2,3,4,5,6,7,8,9,10,11,12", }; let objB = { // プロパティを定義 // キー: 値 year: "2022", month: "1,2,3,4,5,6,7,8,9,10,11,12", }; //オブジェクトをまとめる let allobj = Object.assign(objA, objB); //JSON.stringifyとは、JavaScriptのオブジェクトや値などのデータをJSONに変換するための関数 let result = JSON.stringify(objA,objB); //変数「result」に代入 console.log(result);
- 862 名前:デフォルトの名無しさん [2022/07/07(木) 21:40:14.54 ID:TVMHA1kRr.net]
- JSON.stringifyをまとめても、let result = JSON.stringify(allobj);
console.logを2つにわけても2021のみ表示されて、2022がどうしても表示されないのですが、何か考えられる原因はありますでしょうか?console.log=JSON.stringify(objA);console.log=JSON.stringify(objB);
- 863 名前:デフォルトの名無しさん mailto:sage [2022/07/07(木) 21:56:36.52 ID:E4BLf8JX0.net]
- >>840
ありがとう、理解しました いちいちコンストラクタとか宣言する気起きなかったから良かった
- 864 名前:デフォルトの名無しさん mailto:sage [2022/07/07(木) 22:25:23.38 ID:1JorfJ+H0.net]
- >>843
Object.assignは1番目の引数オブジェクトを直に2番目以降のオブジェクトのキー・値で上書きするものですよ もしかして let allobj = [ objA, objB ]; let result = JSON.stringify(allobj);
- 865 名前:デフォルトの名無しさん (オッペケ Srf9-cwmE [126.254.152.249]) [2022/07/07(木) 23:19:17 ID:TVMHA1kRr.net]
- 下記のようにしたら表示されるんですが、変数「result」に代入しておく必要があるため困っております。
let result =にobjA,objB別々にすることはできますでしょうか? //オブジェクトを定義するvarは受け取る際にエラーが起きそう再宣言のできるletを選択 let objA = { // プロパティを定義 // キー: 値 year: "2021", month: "1,2,3,4,5,6,7,8,9,10,11,12", }; let objB = { // プロパティを定義 // キー: 値 year: "2022", month: "1,2,3,4,5,6,7,8,9,10,11,12", }; //JSON.stringifyとは、JavaScriptのオブジェクトや値などのデータをJSONに変換するための関数 console.log(JSON.stringify(objA));console.log(JSON.stringify(objB));
- 866 名前:デフォルトの名無しさん mailto:sage [2022/07/08(金) 00:03:23.67 ID:PFDPpPXI0.net]
- 何がやりたいのかサッパリわからん
- 867 名前:デフォルトの名無しさん mailto:sage [2022/07/08(金) 00:18:12.73 ID:hP3rbItM0.net]
- >>842-843,846
マルチポストか https://teratail.com/questions/u195apv1x9xtdv せめてマルチポストのマナーを守れ https://ja.meta.stackoverflow.com/questions/2418/ >>832,834-835もあなただと思うが、JavaScriptを学習する前にPHPの入門書買うのが先だと思うぞ form送信するのなら、JacaScriptもJSONも必要ない PHP側でGETもしくはPOSTでパラメータを受け取れば良い PHPにはパラメータを配列で受け取る仕組みがあるからな やりたいことから逆引きするのは止めて、入門書で基礎を固めるべき 回答もらっても理解できんのなら意味がない 回答もらえるだけの明確な質問内容を書けないのなら意味がない 突っ込みどころが多すぎる
- 868 名前:デフォルトの名無しさん [2022/07/08(金) 00:57:16.92 ID:baa8V49za.net]
- >>848
アドバイスありがとうございます マルチポストはすみません。 form通信ではなくSQLを使いアーカイブを表示させるためにプルダウンを作成しています。 Java scriptのオブジェクトでは配列を渡せないのでJSONでシリアライズしてPHPでデコードしてそれをSQLに渡します。 渡されたものから該当の記事を出力させ、PHPで JSONシリアライズした後にAJAXでJava scriptに送り返します。
- 869 名前:デフォルトの名無しさん mailto:sage [2022/07/08(金) 01:59:04.54 ID:FyHcSsdCr.net]
- teratailでのやり取りを見てても根本的に理解が足りてないのがよくわかる
プログラミング始めてどれぐらいか分からんけどもPHPとJavaScriptを組み合わせてどうこうするにはまだ早い気がする
- 870 名前:デフォルトの名無しさん mailto:sage [2022/07/08(金) 09:14:14.28 ID:XXTPwuyz0.net]
- >>832見てると、やり方調べてるうちに、不明点の迷路にハマってる気がする
まずは最低限の実装から順番に理解していかないと、解決するものもしないぞ ①WordPressのフロントエンド側からSQLを呼び出す ※SQLの内容は固定、ボタン一つで1つ結果が返ってくれば良い ⇒これだけならWordPressのコミュニティやサポートに聞けば解答が来る ②WordPressのフロントエンドからプルダウン経由(動的に値を変えながら) SQLを呼び出す ⇒これもWordPressのコミュニティで意見聞いてから、JavaScript側での実装を考えて確認 ③以降も同じように実装領域に合わせて確認していく プログラミングだといきなり最終系考えても 初心者だと実装の過程が滅茶苦茶になるから、まずはシンプルに考えた方が良い
- 871 名前:デフォルトの名無しさん [2022/07/08(金) 14:59:56.45 ID:XF8TEdVua.net]
- >>851
アドバイスありがとうございます。 objAとobjBをボタンとしてクリックさせて、それをPHP側で$識別させることになるのでしょうか? func btnCliked( ) let objA=[{year:2021,month:[1,2,3,4,5,6,7,8,9,10,11,12], }]
- 872 名前:デフォルトの名無しさん mailto:sage [2022/07/08(金) 15:38:46.43 ID:NjcH7rpX0.net]
- >>849
謝罪するならすべきことをやってくれ https://ja.meta.stackoverflow.com/questions/2418/ form送信しないならどうやってデータを送る? select要素時点で文字列になってるのに、なぜJSONに変換する必要がある? PHPでどうやって受け取る? この辺、ちゃんと質問に起こせてないから、質問内容が伝わらなかったり、基礎的な知識不足を指摘されるんだと思うがな
- 873 名前:デフォルトの名無しさん (ワッチョイ d15f-fVpq [14.11.8.0 [上級国民]]) mailto:sage [2022/07/08(金) 16:38:30 ID:XXTPwuyz0.net]
- >>852
イメージ的にはそんな感じ ただ>>853も言っているように、フロントエンド(HTML/JavaScript)とバックエンド(PHP)で どうやってデータの受け渡しをしているのか、っていうのを理解できてないから 本当に入門書読んで勉強し直した方が良いと思うぞ まずは本当にシンプルに ①Wordpress上でボタンを押して、固定値で値をPHP側に渡す(formのPOST通信)をする ②PHP側で値の受け取りが出来たかを確認する ③確認が出来たら、PHP側からJavaScript側に返り値を固定値で渡す ④WordPress上に返ってきた値を表示できるか確認する とりあえず最低限の基礎的な動作を実装して、拡張するっていうやり方しないと この先も大変な事になるぞ
- 874 名前:デフォルトの名無しさん (アウアウウー Sa4d-uVV9 [106.146.60.34]) [2022/07/08(金) 16:45:31 ID:FYSMny9Ka.net]
- >>853
シリアライズするのはJavascript側から配列を渡せないからですよね? PHPではJSONファイルをnode.jsで作成してそれをPHP側で取得→デコードしてSQLに渡す?でしょうか?
- 875 名前:デフォルトの名無しさん (アウアウウー Sa4d-uVV9 [106.146.60.55]) [2022/07/08(金) 16:52:48 ID:IP56XoY2a.net]
- >>854
アドバイスありがとうございます。 たしかにSQLで記事の検索をかけるならわざわざJSONを使う必要ないですかね
- 876 名前:デフォルトの名無しさん mailto:sage [2022/07/08(金) 17:48:25.41 ID:BhrsH9/Er.net]
- >>855
これそもそもなんで配列を渡したいの? 見たところ年も月も複数選択できるわけじゃなさそうで「2022/6」とか渡せば済む話じゃないの?
- 877 名前:デフォルトの名無しさん [2022/07/08(金) 18:08:14.67 ID:iDDaPeaDa.net]
- >>857
SQLから該当記事の検索をさせたいからです RSSとSQLで交互にレイアウトを出力させているためSQLにどうしても配列を渡したいです
- 878 名前:デフォルトの名無しさん mailto:sage [2022/07/08(金) 18:09:52.75 ID:RjBHtpmod.net]
- PHPはめちゃくちゃHTMLやMySQLと親和性高いからJSは足りない部分補うのが
- 879 名前:蛯ノなるかな
多分他のサーバーサイド言語だとJSの活躍の場広がるんだろう [] - [ここ壊れてます]
- 880 名前:デフォルトの名無しさん mailto:sage [2022/07/08(金) 18:10:43.61 ID:XXTPwuyz0.net]
- >>856
バックエンド側をどうやって実装するかにもよるけど 例えばSQLに必要な検索キーが1つだけなら、単体の変数でも良いし 複数あっても。渡し方は極端に言ったら自由だぞ? とりあえず動かすだけなら、複数の値をカンマ区切りの文字列として渡して PHP側でカンマでsplitかけたら配列として使えるようになるから それこからSQL文に埋め込むとかでも良いし…… それこそJSON.stringifyとかも、JavaScript上の辞書とか配列を JSONとして対応できるように文字列に変換してるっていう感じだから 応用みたいな使い方だな(PHP側でunserializeすれば辞書とか配列に復元できる) https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
- 881 名前:デフォルトの名無しさん mailto:sage [2022/07/08(金) 18:16:53.33 ID:oRgFDmccr.net]
- >>858
答えになってない 2022/6ではSQLで該当記事を検索できない理由を書いてくれないと あと後半も意味不明
- 882 名前:デフォルトの名無しさん mailto:sage [2022/07/08(金) 20:40:22.78 ID:NjcH7rpX0.net]
- >>855
1, シリアライズする理由は何? 2. どうやってシリアライズしたデータをPHPに送るの? 3. マルチポストは完全無視?
- 883 名前:デフォルトの名無しさん mailto:sage [2022/07/08(金) 20:46:54.00 ID:NjcH7rpX0.net]
- >>855
> PHPではJSONファイルをnode.jsで作成してそれをPHP側で取得→デコードしてSQLに渡す?でしょうか? そもそも、これサーバサイド側の処理になってる クライアントサイドのJSとサーバサイドのPHPを連携させる話じなかったの? Node.jsが出てくる理由も謎
- 884 名前:デフォルトの名無しさん mailto:sage [2022/07/08(金) 21:15:58.38 ID:vEJej2ti0.net]
- マルチポスト警察ウザ。
- 885 名前:デフォルトの名無しさん [2022/07/08(金) 22:52:34.37 ID:X5TUJXwua.net]
- これあとでアドバイス貰ったんですがwordpressのSQLにJavascriptを流すって出来ないんですね
フロントデータの送受信が出来ないようなので、という事はwordpressでJavascriptは使えないってことでしょうか…
- 886 名前:デフォルトの名無しさん mailto:sage [2022/07/08(金) 23:02:23.38 ID:8WwUcj98M.net]
- いよいよ何を言ってるかわかんねえ
- 887 名前:デフォルトの名無しさん [2022/07/08(金) 23:07:34.08 ID:VQz+8WUxa.net]
- >>866
wordpressのJSONをwordpressの SQLに流す事は不可能なようです。 どうやら過去にウイルスを流された事があるらしくAPI通信が遮断されているようです。 jQuearyなどでファイルをクッションにして無理やり送る事は出来ないんですかね…
- 888 名前:デフォルトの名無しさん mailto:sage [2022/07/08(金) 23:19:43.07 ID:8WwUcj98M.net]
- >>867
SQLにJSONを流すってのがどういうことなのか具体的に説明してくれ よそでアドバイスもらったんならそれもついでに示せ あと上の方でもらってるレスをほったらかしにしないで返信しなよ
- 889 名前:デフォルトの名無しさん [2022/07/08(金) 23:26:57.20 ID:rnkihMoNa.net]
- >>868
申し訳ありません。 2段階式年月プルダウンをfront-page.phpに設置しております。 そこからarchive.phpのデータベース(SQL)に送りたいです。 プルダウンでクリックされた月を元にSQLに渡したいのですが、片方がJavascriptである場合、wordpressはフロントデータの送受信が出来ない為成立しません。 これを回避する方法が知りたいです。
- 890 名前:デフォルトの名無しさん (テテンテンテン MM96-E42W [133.106.49.35]) mailto:sage [2022/07/08(金) 23:33:14 ID:v6YmQ/+dM.net]
- 会話も噛み合わないし最早全コード晒した方がはえーぞ
現状秘密にするほどの価値も無いだろうし
- 891 名前:デフォルトの名無しさん (アウアウウー Sa4d-uVV9 [106.146.61.244]) [2022/07/08(金) 23:36:09 ID:F1gZYOBca.net]
- >>860
ボタンクリックが動的だとすると、JavascriptやjQueryから信号を出さないといけない気がするんですが、両方PHPで2段階プルダウンアーカイブ機能を作る事はできるのでしょうか?
- 892 名前:デフォルトの名無しさん (アウアウウー Sa4d-uVV9 [106.146.61.244]) [2022/07/08(金) 23:36:46 ID:F1gZYOBca.net]
- >>870
wandboxでコードを書いて載せます
- 893 名前:デフォルトの名無しさん (ブーイモ MM96-SGcD [133.159.153.167]) mailto:sage [2022/07/08(金) 23:37:21 ID:8WwUcj98M.net]
- >>869
>片方がJavascriptである場合、wordpressはフロントデータの送受信が出来ない為成立しません。 これが何言ってるかわからん 具体的なphpなりSQLなりのコードも出してみなよ もう完全にスレ違いだけど
- 894 名前:デフォルトの名無しさん (オッペケ Srf9-cwmE [126.33.108.116]) [2022/07/08(金) 23:44:33 ID:LpFPYqzOr.net]
- https://wandbox.org/permlink/Fal7HBABk3wT4fpd
archive.phpの170行目から2段階式プルダウン、339行目からSQLになります。
- 895 名前:デフォルトの名無しさん (オッペケ Srf9-cwmE [126.33.108.116]) [2022/07/08(金) 23:52:24 ID:LpFPYqzOr.net]
- https://wandbox.org/permlink/ymaf7S1uQ92PbiP8
scriptエラーになってるので変更しました。170~270が2段階式プルダウンです。
- 896 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 00:02:51.10 ID:R84UyFQQM.net]
- >>875
SQLは340行目だけ? これのどこに画面で選択した年と月が関係するの?
- 897 名前:デフォルトの名無しさん [2022/07/09(土) 00:06:59.88 ID:cNMjwuhqa.net]
- >>876
1.選択した年と月をJSONにして文字にシリアライズします 2.PHP側でJSONでシリアライズします 3.SQLに配列を渡します 4.Javascript側で結果をAJAXで受け取ります これでプルダウン機能が動作します。 何か間違ってる事はありますでしょうか?
- 898 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 00:09:11.44 ID:5lHQxv9F0.net]
- >>877
1と2で合計2回シリアライズしてるのが意味不明
- 899 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 00:11:14.44 ID:R84UyFQQM.net]
- >>877
質問を変えるわ >3.SQLに配列を渡します このSQLで何を取得するつもりなの?
- 900 名前:デフォルトの名無しさん [2022/07/09(土) 00:18:11.07 ID:iVSPF+ILa.net]
- >>878
シリアライズではなく正確にはデコードですかね $変数に変えてからSQLに渡します
- 901 名前:デフォルトの名無しさん [2022/07/09(土) 00:18:52.21 ID:iVSPF+ILa.net]
- >>879
SQLでwordpressのデータベースから該当する記事を出力してPHPで表示したいです
- 902 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 00:29:37.92 ID:R84UyFQQM.net]
- >>881
該当する記事を取得するための検索条件は? 今は無条件でページングしてるだけに見えるけど
- 903 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 00:33:28.58 ID:5lHQxv9F0.net]
- >>880
やはり…そうか 配列にしたいからJSONにしてるのか?
- 904 名前:デフォルトの名無しさん [2022/07/09(土) 00:44:35.23 ID:ifkPFCzpr.net]
- >>882
もとはこちらでした。SQLに必死でこーどがきえております。 https://wandbox.org/permlink/fhJ2DJMkP50tbNRn
- 905 名前:デフォルトの名無しさん [2022/07/09(土) 00:45:00.56 ID:9ZaaLUbUa.net]
- >>882
条件は日付と更新日です 日付だけでも良いのですが
- 906 名前:デフォルトの名無しさん [2022/07/09(土) 00:46:14.61 ID:ifkPFCzpr.net]
- archive.phpの254行目からSQLを組んでいます。
- 907 名前:デフォルトの名無しさん [2022/07/09(土) 00:47:27.37 ID:E6hL7TiQa.net]
- >>883
配列にしたいからですね
- 908 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 00:57:10.79 ID:R84UyFQQM.net]
- >>885
>AND (post.post_date LIKE %s OR post.post_modified LIKE %s ) この部分? これに配列渡すつもりでいるの?
- 909 名前:デフォルトの名無しさん [2022/07/09(土) 01:03:38.45 ID:TjvgNrJja.net]
- >>888
$query = $wpdb->prepare($sql, "%$search_query%", "%$search_query%"); 配列はこの部分ですね
- 910 名前:デフォルトの名無しさん [2022/07/09(土) 01:04:31.60 ID:TjvgNrJja.net]
- ANDはwordpressのテーブルからカラムで条件を引いてます
- 911 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 01:08:11.05 ID:R84UyFQQM.net]
- >>889
$search_query変数が配列? $search_queryに具体的にどんな値が入ってる想定なのか書いてみなよ
- 912 名前:デフォルトの名無しさん [2022/07/09(土) 01:20:47.68 ID:R5/OxtTaa.net]
- >>891
よく考えてみると$date_queryかもしれません。 検索は出てきたんですが、アーカイブが出てこなかったためsearch_queryにしてましたが…
- 913 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 01:26:28.50 ID:R84UyFQQM.net]
- >>892
変数名はこの際どうでもいいよ SQLにどんな値を渡したいのかが知りたいんだから
- 914 名前:デフォルトの名無しさん [2022/07/09(土) 01:28:08.76 ID:O/RwhBiHa.net]
- php get_search_form(); で貰ったワードから検索ページのSQLは出力されています
アーカイブページもおそらくwordpressの既存のアーカイブをクリックしてSQLに繋がるはずです この配列の渡し方もよく分かってない状態です…
- 915 名前:デフォルトの名無しさん (ワッチョイ 5e01-KYHT [111.188.56.5]) mailto:sage [2022/07/09(土) 01:31:51 ID:5lHQxv9F0.net]
- >>869,877,880,887
要件 - front-page.phpにselect要素で年月のブルダウンメニュー設置 - front-page.phpの入力値をAjaxでarchive.phpにリクエスト - archive.phpでパラメータを配列で受け取る 実装 1. front-page.php: のselect要素で配列にしたいもののname属性値に [] をつけておく 2. front-page.php: Fetch APIでFormDataをarchive.phpにリクエスト 3. archive.php: 受け取った配列を元にSQL文生成→クエリを発行→結果をJSONで出力 4. front-page.php: JSON.parse()して後続処理 SQLの下りはPHPの処理なので、ここでは言及しない
- 916 名前:デフォルトの名無しさん (ブーイモ MMfe-x9bc [133.159.153.167]) mailto:sage [2022/07/09(土) 01:39:36 ID:R84UyFQQM.net]
- >>894
検索ページのSQLってのはsearch.phpの258行目からのこと? こっちは$search_query変数はただの文字列でキーワード検索してるんじゃないの?
- 917 名前:デフォルトの名無しさん (アウアウウー Sac1-dkZz [106.146.61.98]) [2022/07/09(土) 01:45:04 ID:GEdQauyNa.net]
- >>896
そうですね… という事は$date_query=配列or変数で渡せば過去の記事をSQLで検索する仕組みになりますかね…
- 918 名前:デフォルトの名無しさん [2022/07/09(土) 01:52:27.26 ID:oGz1rKt0a.net]
- >>895
- front-page.phpの入力値をAjaxでarchive.phpにリクエスト についてお聞きしたいんですが、これはフロントデータの送受信にあたらないのでしょうか? wordpressはJavascriptとjQueryから受け取ることも渡すことも出来ません
- 919 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 01:57:57.75 ID:R84UyFQQM.net]
- >>897
だからなんで配列にこだわるの? "%$search_query%"って使ってる以上配列は受けとれんでしょ 文字列変数で"%2021-01%"とかではあかんの?
- 920 名前:デフォルトの名無しさん [2022/07/09(土) 02:01:20.50 ID:bBBYb9fqa.net]
- >>899
いえ配列である必要はないですが、SQLで検索する際に文字は無理だと思うので、一回デコードしてデータにする必要があると思います…
- 921 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 02:02:16.29 ID:5lHQxv9F0.net]
- >>898
勿論、フロントデータだ HTMLに書かれたselect要素に入力されたデータはクライアントサイドの情報だからな WordPressがフロントデータを受信できないのなら、プルダウンメニューに入力された情報をWordPressで受け取る手段がないことになる ブラウザを使えないようだから、サーバにtxtファイルをアップロードするとか、手段を変えるしかないのでは?
- 922 名前:デフォルトの名無しさん [2022/07/09(土) 02:07:50.54 ID:fbyrksNGa.net]
- >>901
やはり1回クッションを挟む必要があるんですよね? ただ厄介なのはSQLからも送れないことですねwordpressの SQLなので記事の情報を全てファイルに送ってそれを再度Javascriptに送り返す必要があります
- 923 名前:デフォルトの名無しさん [2022/07/09(土) 02:09:25.27 ID:fbyrksNGa.net]
- 皆さんアドバイスありがとうございます
とても勉強になりました
- 924 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 02:09:27.83 ID:R84UyFQQM.net]
- >>900
>SQLで検索する際に文字は無理だと思うので 何を言いたいのか分からん post.post_date LIKE '2021-01%' って検索条件にすれば2021年1月の記事は検索できるんじゃないの?
- 925 名前:デフォルトの名無しさん [2022/07/09(土) 02:11:17.73 ID:fbyrksNGa.net]
- >>904
直打ちは考えた事がなかったです… たしかに可能かもしれません
- 926 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 02:13:21.75 ID:R84UyFQQM.net]
- >>905
直打ちしろとは言ってない 文字列変数で済むだろってこと
- 927 名前:デフォルトの名無しさん [2022/07/09(土) 02:14:16.13 ID:fbyrksNGa.net]
- >>906
文字列変数ですね、失礼致しました。
- 928 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 02:16:02.68 ID:R84UyFQQM.net]
- あと君さ、物を知らなくて教えを乞う立場なのに~出来ません、~必要がありますとか断定形使うのやめようよ
君の知らない解決方法なんていくらでもある
- 929 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 02:21:08.51 ID:5lHQxv9F0.net]
- >>902
1回クッションとは? フロントデータを受け付けないとは、通信を受け付けないということ そんなWordPressがあるなら、ブラウザでWordPressを閲覧することすらできない 前提がありえないと俺は思うけどね あなたは通信周りの知識がかなり怪しい PHPも明らかに基礎知識が不足してる この課題は今すぐ解決は諦めて、入門書から始めるのが妥当なんじゃないと俺は思う
|

|