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

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

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

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1573閲覧

php 繰り返し処理と条件分岐 

hiro0208

総合スコア75

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/03/17 05:03

編集2017/03/17 06:12

現在指定行でリセットし、出力をするプログラムを記述しているのですが、
行のリセットのための入力を空で送信した場合、下記のような出力が
できない状態です。どこの記述が間違っているのか、ご教授いただけないでしょうか?

入力値は入れ、リセットする行するを空で送信した場合です。
よろしくお願いいたします。

イメージ説明

php

1<!doctype html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>smaple</title> 6</head> 7<body> 8<form action="" method="post"> 9入力値<input type="text" name="base" size="2"> 10リセット<input type="text" name="reset" size="2">行でリセット 11<input type="submit" name="btn" value="送信"> 12</form> 13<?php 14if (isset($_POST['btn'])) { 15 $base = $_POST['base']; 16 $reset = $_POST['reset']; 17 $count = 0; 18 for ($i = 1; $i <= $base; $i++) { 19 $count++; 20 $circle .= '●'; 21 if ($reset != '' and ($count % $reset == 1)) { 22 $circle = '●'; 23 } 24 else { 25 } 26 echo $circle . '<br>' . "\n"; 27 } 28} 29?> 30</body> 31</html>

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2017/03/17 05:11

「リセット」で何がしたいのかを詳しく書いてください。
hiro0208

2017/03/17 05:20 編集

フォームの入力値には値を入れ、リセットの箇所は空(値を入れず)で送信した場合に、上記の画像のように出力したいです。
退会済みユーザー

退会済みユーザー

2017/03/17 05:23

意味がわかりません。例えば、base が 10、reset が 8の時、リストは何個表示したい? base が10 reset が 15の時リストは何個出力? base が10、rest が空のときリストは何個?
hiro0208

2017/03/17 05:31

わかりづらくすみません。ちょっと考え直します。
guest

回答1

0

ベストアンサー

こうですかねぇ。

PHP

1if (isset($_POST['btn'])) { 2 $base = $_POST['base']; 3 $reset = isset($_POST['reset'])? $_POST['reset']: ''; // ←修正 4 //●を1ずつ増やしていく変数の初期値 5 $count = 0; 6 for ($i = 1; $i <= $base; $i++) { 7 $count++; 8 $circle .= '●'; 9 if ($reset == '' || ($reset != '' and ($count % $reset == 1))) { // ←修正 10 $circle = '●'; 11 } 12 else { 13 } 14 echo $circle . '<br>' . "\n"; 15 } 16}

投稿2017/03/17 05:24

ttyp03

総合スコア16998

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

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

hiro0208

2017/03/17 05:28

冗長な記述もあった中、ありがとうございます。 論理演算子の基本を押さえていませんでした。
ttyp03

2017/03/17 05:30

いや、論理演算子云々ではなくて、単にロジックの話です。
hiro0208

2017/03/17 05:50

ロジック、、、、 if文の制御文中に、「$resetが空の場合、または〜」、、、という事が抜けて いるという事なんでしょうか。。。
ttyp03

2017/03/17 05:53

まあ、そういうことです。 やり方は他にもあるかと思いますが、提示されたコードを使うなら、という前提での修正案です。 で、期待通りの動作になっているのでしょうか?
hiro0208

2017/03/17 05:55

>提示されたコードを使うなら、という前提での修正案です。 はずかしいコードですが。。。 はい、なっています。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問