- 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
- 796 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 15:34:16.82 ID:PVhyJTd00.net]
- >>779
https://hrzine.jp/article/detail/2123 日本人プログラマーは約100万人。 でもjavascriptを使いこなせている人はそんなにたくさんいるかな?
- 797 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 15:36:51.91 ID:PVhyJTd00.net]
- https://xtech.nikkei.com/atcl/nxt/mag/nc/18/072100242/072100001/
国内シェアは4.4%だから大体4万4千人程度だった。
- 798 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 16:11:25.97 ID:tfSxvHhSr.net]
- >>781
そもそもその統計はおかしい 一人でいくつも言語を使うのが当たり前 4.4%ってのはjavascript「しか」使えない人口だろう ということはやはりjavascriptを使える人口は100万人に近くなる
- 799 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 16:44:02.22 ID:2xPsbg+9M.net]
- そもそもオッペケにマジレスするのがおかしい
- 800 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 19:46:27.69 ID:PVhyJTd00.net]
- >>782
アンケートでは、現在使っているプログラミング言語を3つまで挙げてもらった。 JavaScriptは2位。 最も使っている言語を1つだけ挙げてもらった。 上位3位で43.2%を占める。 100万人?43.2%で約4万3千人位がJavaScriptを使えるかと。
- 801 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 19:47:20.81 ID:PVhyJTd00.net]
- 約43万人。
- 802 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 21:29:30.02 ID:tfSxvHhSr.net]
- >>785
すごい 43万人がjavascriptのスペシャリストプログラマー 残りの57万人もほぼ使えるのだろうが初心者向け言語だから重視していないんだろうな
- 803 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 21:32:15.40 ID:q2HycVdQM.net]
- 親でも殺されたのか?
- 804 名前:デフォルトの名無しさん [2022/06/13(月) 08:40:40.71 ID:am3Wwq1W0.net]
- element.animate(
{ left:["100px","200px","300px","400px","500px"] }, {duration:6000} ); というアニメーションの場合で leftが100px,200px・・・500pxになった毎にalert表示したいんだけどどうやればできますか? 各位置に達したら発生するイベントはないんでしょうか?
- 805 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 17:30:17.10 ID:mNIVTbIq0.net]
- for(const left of ["100px","200px","300px","400px","500px"]){
await element.animate({left}, {duration:1200, fill:'forwards'}).finished alert(left) } こんな感じだろうが、うちのブラウザではalertと非同期処理の相性が悪くて 期待通りには動かんな
- 806 名前:デフォルトの名無しさん [2022/06/13(月) 18:03:23.16 ID:am3Wwq1W0.net]
- >>789d
どうもっす awaitっていうのは何ですか?あと1200という数字はどこから来たんですか?
- 807 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 19:32:06.01 ID:GwwyxVQWd.net]
- 6000/5かな
- 808 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 19:38:33.43 ID:i6A98kDWM.net]
- >>790
横からだけど、awaitはpromiseオブジェクトの解決(成功・失敗)まで待機する構文 1200は6000(6秒)をキーフレームの数(ループ回数=5)で割ったもの
- 809 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 21:01:30.83 ID:0JGjDuiuM.net]
- >>789
理屈は分からんけどダミーのアニメーションか何かを挟むと上手くいくっぽい https://jsfiddle.net/0c3hmbok/
- 810 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 07:59:04.85 ID:QblsDI8c0.net]
- >>793
>>789の書き方だとプロミスチェーンされないからだと思います await element.animate({left}, {duration:1200, fill:'forwards'}).finished await alert(left) でいけました await element.animate({left}, {duration:1200, fill:'forwards'}).finished.then( () => { alert(left) } ) でもOK
- 811 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 11:53:12.03 ID:jm08kgMyM.net]
- >>794
うちの環境だとalertにawait付けただけでは上手くいかなかったのよ jsfiddle.net/m3pq6djw/ ダイアログでOK押したときに●がワープしない?
- 812 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 20:15:11.04 ID:QblsDI8c0.net]
- >>795
確認しました 朝はSafariだったので SafariとFirefoxではそもそもawaitつけなくても>>789で問題なく動く Chromeはawaitあるなし関係なくダメ、全体をthenに書き換えてもダメ ちなみに全てMac版です 色々試してみた感じ Chromeはalert()のダイアログを出したタイミングで次のPromiseを実行する 画面は止まってるが計算は実行されているので、OKでダイアログ閉じた時に辻褄合わせでワープする SafariとFirefoxはダイアログのOKボタンを押したタイミングで次のPromiseを実行する それまで画面も計算も止まってるのでダイアログ閉じてからアニメーションが始まる かなあと思ったりしましたが、実際のところはわからないです まあでもChromeで動かないならダメですね
- 813 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 21:03:39.71 ID:BrOck07XM.net]
- 戻り値のある confirm() や prompt() ならイケそうな気がするけど、どうだろう
- 814 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 11:59:48.35 ID:1XehFqTjM.net]
- >>795をawait confirmに変えてみたけど挙動は変化なし
- 815 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 13:13:12.54 ID:aRosNJ
]
- [ここ壊れてます]
- 816 名前:Ld0.net mailto: そりゃPromise返さないやつにawait付けたところで変わるわけないわな
chromiumのモダールダイアログの処理に問題あるんだろうね [] - [ここ壊れてます]
- 817 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 19:49:56.67 ID:xgXbyqQZ0.net]
- awaitの後の式の値がPromiseでない場合はPromise.resolve()に変換されるってことなので
最初はそこかと思ったんですよね >>793がどうしてChromeでちゃんと動くのかを考えたんだけど おそらくChromeはダイアログ出した段階でPromisebフ中身を実行しbトるけど OKを押すまでPromiseの状態は変えないんだと思います つまりダミーのアニメーションはすぐ実行完了するけどOKを押すまではPendingなので次に行かない なのでPendingで返却してすぐにFulfilledになるPromiseにすりゃいいのではと思って試したら多分できた https://jsfiddle.net/v2c7baL3/
- 818 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 17:12:37.89 ID:AZEFiuqJ0.net]
- ようやく大手を振ってIEサポート拒否出来るわ
IEモードなんて知らん
- 819 名前:デフォルトの名無しさん [2022/06/20(月) 11:37:14.04 ID:L+sRNCcV0.net]
- クラス内のコンストラクタについてこの認識で合ってますか?
constructor(引数){this.プロパティ名 = 値;} 1.受け取った引数は値に格納され 2.インスタンス生成することで値が「this.プロパティ名」に代入され 3.同時に「this.プロパティ名」はインスタンスに渡される。 ググれどググれどページによってニュアンスが違くて混乱しております。
- 820 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 18:00:16.96 ID:HWRjc4FJ0.net]
- setInterval内でループ毎に変化するelementがあってそのelementに対してのaddEventListenerを使う場合は
イベントが蓄積されていくからremoveEventListenerでループ毎に削除する必要があるけど プロミスは1回のイベントが実行されれば蓄積されないので削除しなくていいって聞いたけど正しいんですか?
- 821 名前:デフォルトの名無しさん [2022/06/20(月) 18:10:56.22 ID:HWRjc4FJ0.net]
- >>796
animateを関数で囲ってanimation.finished.then毎にその関数を再起呼び出しでできました
- 822 名前:デフォルトの名無しさん [2022/06/27(月) 11:19:58.02 ID:qD2YGrhX0.net]
- これだと、単に変数に文字列 "a" を代入しただけに思えるけど
どうしてobjのプロパティが代入されるんですか? const obj = {a: 10, b:20}; const num = 'a'; console.log(obj[num]); // 10
- 823 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 11:47:02.50 ID:VP93VLfnM.net]
- >>805
下記は共にオブジェクトのaプロパティを参照する式で、結果としてaプロパティの値が得られる obj.a obj['a']
- 824 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 16:22:22.11 ID:Xs6h66q80.net]
- >>805
console.log(obj['a']) で同じ動作になるから
- 825 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 17:24:02.66 ID:R3+dz0k/M.net]
- obj[num]のnumが評価されてobj[‘a’]になる
さらにobj[‘a’]が評価されて10になる
- 826 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 21:12:32.27 ID:e3WLxABv0.net]
- varだとこのように書けるけど
if(a > 1){var b = 0;} else{var b = 1;} alert(b); letだと if(a > 1){let b = 0;} else{let b = 1;} alert(b); のようには書けないので let b; if(a > 1){b = 0;} else{b = 1;} alert(b); と書くしかないので行数が多くなるのでvarの方が使える場面もあるってこと?
- 827 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 07:53:03.90 ID:ZhYOvAvRM.net]
- 代入してん?
- 828 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 08:46:29.95 ID:k/gTnCZpM.net]
- >>809
varは「既存コードとの互換性目的で残されているだけ」であって、利用禁止が大前提 無意味にletを使うのもやめた方がいい 例1 - 名付けあり > const b = a > 1 ? 0 : 1; > alert(b); 例2 - 名付けなし > alert(a > 1 ? 0 : 1);
- 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行目だけ? これのどこに画面で選択した年と月が関係するの?
|

|