我有一个包含3个值的数组。首先,我用3个超链接显示它们。当用户点击链接时,他会收到一个带有3个选项/值的选择输入(预选选项是超链接的值)和文本输入(其值也是超链接的值)。在此之后,我想将新选择的选项的值传递给文本输入,如果我在文本输入上写入一个值(等于数组的一个值),那么我希望选择此选项。
例如:我选择超链接“maria”。文本的值为“maria”,select也选择了“maria”选项。然后我选择了“anna”选项。我希望在文本上看到“anna”的价值。然后我输入“jana”,我也希望看到选择“jana”。
问题是文本在提交后没有保留其值。
我使用了两次onchange='submit()'
,我认为存在问题。
这是我到目前为止所做的:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<?php
echo"<form method='post' action='".htmlspecialchars($_SERVER["PHP_SELF"])."'>";
$user_name = $_REQUEST['user_name'];
if($_POST['username']){
$user_name=$_POST['username'];
}
if($_POST['users']){
$user_name=$_POST['users'];
}
if(!$user_name){
$users_array=['maria','anna','jana'];
foreach($users_array as $us_name){
echo "<a href='".htmlspecialchars($_SERVER["PHP_SELF"])."?user_name=".$us_name." '> ".$us_name."</a><br/>";
}
}else{
echo $user_name." ";
echo $_POST['username']." ";
if($_POST['username']){
$user_name=$_POST['username'];
}
echo $_POST['users'];
if($_POST['users']){
$user_name=$_POST['users'];
}
echo"<input type='text' id='username' name='username' value='".$user_name."' onchange='submit()' />";
echo"<br><br><br><select id='users' name='users' onchange='submit()'>";
$users_array=['maria','anna','jana'];
foreach($users_array as $auxvar_user_name)
{
echo "<option value='".$auxvar_user_name."'";
if($_POST['username'] == $auxvar_user_name)
{
echo" selected='selected'";
}
echo">".$auxvar_user_name."</option>";
}
echo "</select></form>";
}
?>
</body>
</html>