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

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

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

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

JavaScript

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

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

3260閲覧

Onclick内でそのOnclickの入ったタグを呼び出したい

nameless_mob

総合スコア36

PHP

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

JavaScript

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

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2018/10/22 06:39

編集2018/10/22 07:12

前提・実現したいこと

.phpファイルでノベルゲームを作ろうとしています。

nextという文章もしくはボタンをクリックしたら次の文章を表示してまた同じボタンを表示する、
テキストボックスの機能を実装中に以下の問題が発生しました。

発生している問題・エラーメッセージ

現在のコードですと一度しか呼ばれません。
配列が無駄になっているのは試行錯誤の跡なので無視してください。

該当のソースコード

test.php

1<!DOCTYPE html> 2<html> 3<head> 4<!-link rel="stylesheet" href="test.css"-> 5 <title>title</title> 6 <meta charset="UTF-8"> 7</head> 8<body> 9<?php /*$a = "a"; echo($a);*/?> 10<?php 11$i = 0; 12$strings = array("私は","バックエンドに","興味を持っています。","END"); 13?> 14 15<a name="hoge"> 16<span class="pnt"> 17<?php 18echo($strings[$i++]); 19?> 20</span> 21</a> 22 23<?php 24function novel($n){ 25 switch($n){ 26 case 0:echo ('私は');break; 27 case 1:echo ('バックエンドに');break; 28 case 2:echo ('興味を持っています。');break; 29 default:echo('END');break; 30 } 31?> 32<?php }?> 33 34<input type="button" value="next" onclick='document.write("<?php novel($i);?>");'> 35 36</body> 37 38</html>

試したこと

・関数内で自分を呼ぶ
⇒再帰処理のため無限に呼ばれる
・呼び出す際にif文を使う
⇒再び呼び出せる方法が思いつかない
・関数を使わずfor文で$string回ループさせる ⇒全部のボタンが最初の画面に出てきた
・aタグでラベルを付けて飛ばす <a href="javascript:void(0);" onclick='document.write("<?php novel($i);?>");'>next</a><br />
⇒上に同じ
・Onclick内に自分と同じ文章を入れる⇒入れ子になりすぎて何回呼び出しているのか把握が困難でコードが見にくい
・文章ごとにファイルを分け、aタグで飛ばす ⇒ノベルゲームなので本番の文章だとファイルが増えすぎる

補足情報(FW/ツールのバージョンなど)

xamppを起動してGoogle Chrome上で動作させています。
バージョンは不明です。

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

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

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

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

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

guest

回答2

0

ベストアンサー

ajaxを使いたくないのであれば画面遷移が発生しますが、以下のような感じで。
「PHP パラメータ」等で検索して、画面遷移時の情報の引き渡しを勉強すると良いかと思います。

php

1<?php 2 $strings = array("私は","バックエンドに","興味を持っています。","END"); 3 $key = filter_input(INPUT_GET, 'key'); 4 $key = (int)$key; 5 $next_key = $key + 1; 6?> 7<html> 8 <form> 9 <?php echo(htmlspecialchars($strings[$key], ENT_QUOTES)) ?> 10 <input type="hidden" name="key" value="<?php echo($next_key) ?>"> 11 <input type="submit" value="next"> 12 </form> 13</html>

投稿2018/10/22 07:19

Akiya

総合スコア144

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

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

nameless_mob

2018/10/22 07:39

上手く動きました!ありがとうございます!
guest

0

ちょっと状況がわかりませんが、テキスト送りであればajaxで取りに行って
非同期で処理したほうがよいでしょう

投稿2018/10/22 06:47

yambejp

総合スコア114814

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

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

nameless_mob

2018/10/22 07:03

それだと重くなりそうかな、というのとAjaxに関する知識がなくて実装が難しいので出来ればAjaxは使わない方法でお願いします…。
yambejp

2018/10/22 07:26

ajaxの次に現実的なのはメッセージ領域をiframeで書くことです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問