html — имя из текстового поля не отражается в переполнении стека

Код:

<!DOCTYPE html>
<html>
<head>
<title>Greeting Service!</title>
</head>
<body>
<center>
<form method="post" action="">
<h1>What's Your Name?</h1>
<input type="text" name="name" placeholder="Name Here" />
<h4>Greet me in:
<select name="language">
<option value="option1">English</option>
<option value="option2">Chinese</option>
<option value="option3">French</option>
</select>
</h4>
<input type="submit" value="Greet Me!" />
<?php
if (isset($_POST['language'])) {
switch ($language) {
case "option1":
$result = "Hello, $name!";
break;
case "option2":
$result = "你好, $name!";
break;
case "option3":
$result = "Bonjour, $name!";
break;
}
}
?>
</form>
</center>
</body>
</html>

Я не уверен, почему он не отображает имя, которое я ввожу из текстового поля ввода с приветствием для каждого языка. Я использовал $ _POST для отправки формы и использовал switch а также case в моем PHP-код. Может ли кто-нибудь помочь мне, я хотел бы, чтобы имя, которое вводится в текстовое поле, отображалось, когда я выбирал, на каком языке я хочу, чтобы приветствие появилось. Благодарю.

0

Решение

У вас нет $language определены. То, что вы должны использовать, это $_POST['language'] :

if (isset($_POST['language'])) {
switch ($_POST['language']) {

РЕДАКТИРОВАТЬ: не заметил $name переменная, как сказал Минеш Джайн.
И последнее: вы никогда ничего не делаете с результатом. Не уверен, предназначено ли это или нет, но я бы добавил echo $result; в конце.

0

Другие решения

Это происходит потому, что вы не инициализируете какое-либо значение для $ язык
просто поместите код как $language = $_POST['language'];
выше оператора switch.

0

объявить переменную $name и назначить $_POST['name'] к этому

<!DOCTYPE html>
<html>
<head>
<title>Greeting Service!</title>
</head>
<body>
<center>
<form method="post" action="">
<h1>What's Your Name?</h1>
<input type="text" name="name" placeholder="Name Here" />
<h4>Greet me in:
<select name="language">
<option value="option1">English</option>
<option value="option2">Chinese</option>
<option value="option3">French</option>
</select>
</h4>
<input type="submit" value="Greet Me!" />
<?php
if (isset($_POST['language'])) {
$name = $_POST['name'];
switch ($language) {
case "option1":
$result = "Hello, $name!";
break;
case "option2":
$result = "你好, $name!";
break;
case "option3":
$result = "Bonjour, $name!";
break;
}
}
?>
</form>
</center>
</body>
</html>
0

$name не определено

измени свой код следующим образом

 if (isset($_POST['language'])) {
switch ($_POST['language']) {
case "option1":
$result = "Hello, {$_POST['name']}!";
break;
case "option2":
$result = "你好, {$_POST['name']}!";
break;
case "option3":
$result = "Bonjour, {$_POST['name']}!";
break;
}
}
?>
0

пытался использовать php, чтобы решить ваш вопрос, но не смог его решить, но Javascript делает это без проблем. Проверено, хотя. Найдите код ниже

<center>
<form method="post" action="index.php">
<h1>What's Your Name?</h1>
<input type="text" name="myName" placeholder="Name Here" id="myName"/>
<h4>Greet me in:
<select name="lang" onchange="getValue()" id="language">
<option value="English">English</option>
<option value="Chinese">Chinese</option>
<option value="French">French</option>
</select>
</h4>
<input type="submit" value="Greet Me!" />

<div id="show"></div>


<script type="text/javascript">
function getValue(){
var myName = document.getElementById("myName").value;
var lang =  document.getElementById("language").value;

if(myName == null){
document.getElementById("show").innerHTML = "No name selected";
}
else{
switch(lang) {
case 'English':
document.getElementById("show").innerHTML = "Hello" + ' ' + myName;
break;
case 'Chinese':
document.getElementById("show").innerHTML = "你好" + ' ' + myName;
break;
case 'French':
document.getElementById("show").innerHTML = "Bonjour" + ' ' + myName;
break;

}

}
}
</script>

Скопируйте код и замените его там, где он есть.
Рад, что смог помочь.

0
По вопросам рекламы [email protected]