Код:
<!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-код. Может ли кто-нибудь помочь мне, я хотел бы, чтобы имя, которое вводится в текстовое поле, отображалось, когда я выбирал, на каком языке я хочу, чтобы приветствие появилось. Благодарю.
У вас нет $language
определены. То, что вы должны использовать, это $_POST['language']
:
if (isset($_POST['language'])) {
switch ($_POST['language']) {
РЕДАКТИРОВАТЬ: не заметил $name
переменная, как сказал Минеш Джайн.
И последнее: вы никогда ничего не делаете с результатом. Не уверен, предназначено ли это или нет, но я бы добавил echo $result;
в конце.
Это происходит потому, что вы не инициализируете какое-либо значение для $ язык
просто поместите код как $language = $_POST['language'];
выше оператора switch.
объявить переменную $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>
$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;
}
}
?>
пытался использовать 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>
Скопируйте код и замените его там, где он есть.
Рад, что смог помочь.