前提・実現したいこと
.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上で動作させています。
バージョンは不明です。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/22 07:39