【问题标题】:Decoder une chaine de caractere avec html,javascript,php解码器 une chaine de caractere avec html,javascript,php
【发布时间】:2017-02-16 15:57:22
【问题描述】:

我尝试构建一个包含文本输入和按钮的公式 当我按下按钮 我想在下面的代码中显示一些消息

示例

if my first character is an A 
i want to display "GROUP1-1"

else if my first character is an B
i want to display "GROUP1-2"

else if my first character is an C
i want to display "GROUP1-3"  

if my second character is an F 
i want to display "GROUP2-1"

else if my my second character is an G
i want to display "GROUP2-2"

这是我按下按钮时的代码 程序工作,但总是有这个消息 "注意:未定义索引:C:\Program Files (x86)\EasyPHP 2.0b1\www\exercice\test1\test1.php 中第 18、22、26、30、34 行中的 t"

和程序的工作

我使用记事本++ 和easyPHP

<html>
<head>
<meta charset="utf-8"/>
<title>
exercice 
</title>
</head>
<body>
<form action="" method="post">
decoder ces caracteres 
<input type = "text" name ="t" size="17"/>
<br>
<br>
<center>
<input type ="submit" name ="decoder" value="Decoder">
</center>
<?php
if($_GET['t'][0]=='A') {
echo "GROUP1-1"; 
}
else 
if($_GET['t'][0]=='B') {
echo "GROUP1-2"; 
}
else 
if($_GET['t'][0]=='C') {
echo "GROUP1-3"; 
}
if($_GET['t'][1]=='F') {
echo "GROUP2-1"; 
}
else 
if($_GET['t'][1]=='G') {
echo "GROUP2-2"; 
}
?>
</form>
</body>
</html>

【问题讨论】:

  • 点击提交时能看到t[0]的值吗?您的比较字母 A-G 应该用引号括起来吗?
  • Somar 不,什么都没有发生
  • 只有当我点击提交我输入的字符时删除
  • 您的表单操作设置为post,但您使用的是$_GET。将 $_GET 更改为 $_POST - 类似于 if($_POST['t']=='A')

标签: javascript java php html


【解决方案1】:

您的表单操作设置为post,但您使用的是$_GET。将$_GET 更改为$_POST

<?php
if(!empty($_POST['t']) && $_POST['t']=='A') {
  echo "GROUP1-1"; 
} else if(!empty($_POST['t']) && $_POST['t']=='B') {
  echo "GROUP1-2"; 
} else if(!empty($_POST['t']) && $_POST['t']=='C') {
  echo "GROUP1-3"; 
} else if(!empty($_POST['t']) && $_POST['t']=='F') {
  echo "GROUP2-1"; 
} else if(!empty($_POST['t']) && $_POST['t']=='G') {
  echo "GROUP2-2"; 
}
?>

或者更好的解决方案是使用switch:

if(!empty($_POST['t'])) {
  switch($_POST['t']) {
    case 'A':
      echo "GROUP1-1";
      break;
    case 'B':
      echo "GROUP1-2";
      break;
    case 'C':
      echo "GROUP1-3";
      break;
    case 'F':
      echo "GROUP2-1";
      break;
    case 'G':
      echo "GROUP2-2";
      break;
    default:
      echo "Invalid Input";
      break;
  }
}

【讨论】:

  • 谢谢 uon-pgregorio 代码工作,但总是有消息显示出了什么问题,“注意:未定义的索引:C:\Program Files (x86)\EasyPHP 2.0b1\www\exercice 中的 t \test1\test1.php 在第 18、22、26、30、34 行"
【解决方案2】:

这就是我的意思,你也应该做一个测试以知道表单是否提交

if(isset($_POST['t']))
{
   if($_POST['t'][0]=='A')
      echo"GROUP1-1";
}

【讨论】:

  • kulturman 感谢您的回复我已经做出了所有的改变,但什么也没发生
  • kulturman 我已将其更改为 $_POST['t[0]'] $_POST['t[1]'] 但没有显示
  • 我很困惑,因为它对我来说很好用。你有什么版本的PHP?
  • 我注意到在我的代码中,只要将'post' 替换为post['t'],表单就好像方法设置为'get'。我对它为什么会这样表现感到困惑,但这可能是问题所在。
  • @GHASSEN7 您的文本编辑器与您的问题无关。
猜你喜欢
  • 2022-06-15
  • 2022-06-14
  • 1970-01-01
  • 2011-06-09
  • 1970-01-01
  • 2019-12-24
  • 1970-01-01
  • 1970-01-01
  • 2017-05-31
相关资源
最近更新 更多