質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Shopify

Shopifyとは、ECサイト向けのプラットフォームを提供している企業。さらに、その企業が提供するオンラインストアやPOSシステムを指します。高いデザイン性とカスタマイズ性が評価され、世界各国のネットショップで使用されています。

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

769閲覧

値が見つかるまで処理を繰り返したい

mojimmoji

総合スコア4

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Shopify

Shopifyとは、ECサイト向けのプラットフォームを提供している企業。さらに、その企業が提供するオンラインストアやPOSシステムを指します。高いデザイン性とカスタマイズ性が評価され、世界各国のネットショップで使用されています。

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2022/01/05 10:46

編集2022/01/06 00:08

前提・実現したいこと

shopifyのproducts.jsonで、{{ product.handle }}が見つかるまでページネーションさせるjsを作りたいのですが、検討もつきません。。。

https://shopname.myshopify.com/collections/{{ collection.handle }}/products.json?limit=250

で{{ product.handle }}が見つかるまで、?page=1,2,3...というページネーションを繰り返させたいです。

該当のソースコード

jsの基本構造をよくわかっていないと思いますので、訳のわからないことしていると思います...汗

var num = 1; var collection = for (let step == null; step !== null; step++) { if ( str.indexOf('{{ product.handle }}') != -1) { var page = 'https://shopname.myshopify.com/collections/{{ collection.handle }}/products.json?limit=250?page='+(num++); } }

###ソースコードの全文

/////SKU取得以降のコードは問題なく動いています。
products.jsonで取得できる商品数が最大250商品のため、2ページ目以降に表示される商品情報の取得をなんとかして成功させたいです。

<script> var num = 1; var collection = for (let step == null; step !== null; step++) { if ( str.indexOf('{{ product.handle }}') != -1) { var page = 'https://shopname.myshopify.com/collections/{{ collection.handle }}/products.json?limit=250?page='+(num++); } } /////SKU取得 var obj_this_page = this; var obj_all_products = {}; jQuery.getJSON(collection, function(all_products) { console.log(all_products); obj_all_products = all_products; }).then( function( all_products ){ Object.keys(all_products.products).forEach(function (key) { product = all_products.products[key] var product_handle = product.handle; var current_handle = "{{ product.handle }}"; var current_handle_array = current_handle.split("-",2); var current_handle_prefix = current_handle_array[0]; var product_style_switch = current_handle_array[1]; var switch_handle = current_handle_prefix + '-' + product_style_switch; console.log( "product_handle : "+product_handle ); console.log( "current_handle : "+current_handle ); console.log( "current_handle_prefix : "+current_handle_prefix ); console.log( "product_style_switch : "+product_style_switch ); console.log( "switch_handle : "+switch_handle ); console.log( "" ); var src_colorSelecter =""; var product_img = product.images.length; var title = product.title.split(" "); if (product_handle.indexOf(current_handle_prefix) !== -1) { console.log( product ); if ( product.handle == "{{ product.handle }}" ) { src_colorSelecter += '<div class="other_color current_item">'; }else{ src_colorSelecter += '<div class="other_color">'; } if ( product_img == 0){ src_colorSelecter += '<a href=\"/products/'+product.handle+'\"><img src=\"https://cdn.shopify.com/shopifycloud/shopify/assets/no-image-50-3d8cc48bd078edcd544c8d60f929ed2d8800a3fc52e0f602e84b1767e392bfcd_1728x.gif\"></a><br /><span>'+title[title.length - 1]+'</span></div>'; } else { src_colorSelecter += '<a href=\"/products/'+product.handle+'\"><img src=\"'+product.images[0].src.replace(/-ue.jpg/,'-ue_360x.jpg')+'\"></a><br /><span>'+title[title.length - 1]+'</span></div>'; } console.log(product.current_handle_switch); $('#wrap_other_color').append(src_colorSelecter); } else {} }); } ) </script>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

JavaScript

1var page = 'https://shopname.myshopify.com/collections/{{ collection.handle }}/products.json?limit=250&page='+(num++);

でしょうか?

strはなんでしょうか?
var collection = for ( はなんでしょうか?for文の結果をcollectionに渡したいと言うことですか?

投稿2022/01/05 14:13

skys215

総合スコア910

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mojimmoji

2022/01/05 23:51 編集

ご回答有難うございます! strは自分でもよくわかっていません汗 特定の文字列を検索するjsを探していたら見つけたので使ってみました。 >var collection = for ( はなんでしょうか?for文の結果をcollectionに渡したいと言うことですか? はい、指定したURLに{{ product.handle }}が見つからない場合、見つかるまで次のページに遷移する、ということを繰り返したいです。 →shopifyのproducts.jsonには最大250商品の情報しか表示されないため 最終的に、{{ product.handle }}が見つかったページのURLを変数として渡したいので、varをつけてみました。
skys215

2022/01/06 01:45

for文は関数じゃないので、返値はありません。 strはconsole.log(str)で開発者ツールのコンソールで見られます。
mojimmoji

2022/01/06 04:48

そうなんですね!教えていただき有難うございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問