プログラミング初学者です。
MVCの練習で、簡単なプログラムを PHP5.6.40 / MVCモデル にて
実装を図っています。
やりたいこと
ボタン毎に 違うメッセージを表示させたい。
朝のボタンをクリック時には おはようございます、(名前)さん。
昼のボタンをクリック時には こんにちは、(名前)さん。
該当のソースコード
PHP
1<!-- Controller --> 2<?php 3 // 機能部分(Model)の読み込み 4 require_once "./greeting.php"; 5 6 if(!isset($_POST["flag"])){ // 初めて画面を開いたとき 7 init(); 8 9 } else if($_POST["flag"] = "1" || $_POST["flag"] = "2") { // ボタンが押されたとき 10 edit(); 11 } 12 // View の読み込み 13 require_once "./nameform.php"; 14?>
php
1<!-- Model --> 2<?php 3 function init() { //初期値(空白)を設定 4 $_POST["namae"] = ""; 5 } 6 7 function edit(){ //空白のとき メッセージを準備 8 if(empty($_POST["namae"])){ 9 $_POST["msg"] = "入力されていません。"; 10 } 11 } 12?>
php
1<!-- View --> 2<html> 3<head> 4 <meta charset=utf-8></meta> 5 <script> 6 function sample() { 7 document.getElementById("flag").value = "1"; 8 } 9 function sample2() { 10 document.getElementById("flag").value = "2"; 11 } 12 </script> 13 <title>名前入力</title> 14</head> 15<body> 16 <?php 17 if(isset( $_POST["msg"])){ 18 echo $_POST["msg"]; 19 } else if (isset($_POST["flag"]) && $_POST["flag"] = "1") { 20 echo "おはようございます、{$_POST["namae"]}さん". $_POST["flag"]; 21 } else if (isset($_POST["flag"]) && $_POST["flag"] = "2") { 22 echo "こんにちは、{$_POST["namae"]}さん"; 23 } 24 ?> 25 <form action="" method="post"> 26 名前:<input type="text" name="namae" value="<?php echo $_POST["namae"]; ?>"><br> 27 <input type="hidden" name="flag" id="flag" value=""> 28 29 <input type="submit" onclick="sample();" value="朝"> 30 <input type="submit" onclick="sample2();" value="昼"><br> 31 </form> 32</body> 33</html>
試したこと
var_dump()を行い、値の受け渡しができているかの確認をしました。
flagの値の受け渡しができているのですが、
どちらを押しても "1"が送られており、おはよう のメッセージが表示されます。
拙い文章、思い付きだらけのコードではございますが、
ご教授いただければ助かります。
回答2件
あなたの回答
tips
プレビュー