Reputation: 121
I am trying to assign the value from a drop down list to a variable as follows:
<?php
$submittedValue = "";
$value0 = " ";
$value1 = "mr";
$value2 = "ms";
$value3 = "mrs";
if (isset($_POST["salute"])) {
$submittedValue = $_POST["salute"];
}
$html =null;
//form with data
$html .= "
<form action='' name='salute' method='post'>
<select project='salute' id='salute' name='Salute'>
<option value = '<?php echo $value0; ?>'<?php echo ($value0 == $submittedValue)?' SELECTED':''?>><?php echo $value0; ?></option>
<option value = '<?php echo $value1; ?>'<?php echo ($value0 == $submittedValue)?' SELECTED':''?>><?php echo $value1; ?></option>
<option value = '<?php echo $value2; ?>'<?php echo ($value0 == $submittedValue)?' SELECTED':''?>><?php echo $value2; ?></option>
<option value = '<?php echo $value3; ?>'<?php echo ($value0 == $submittedValue)?' SELECTED':''?>><?php echo $value3; ?></option>
</select>
</form>
";
?>
Which I want to access later as follows:
$test['main'] = <<<EOD
{$html}
EOD;
However, I am embedding it incorrectly, I know that the first part should not be written like that in the $html variable. Can anyone help?
Upvotes: 0
Views: 143
Reputation: 74220
Quick note. You had name='Salute'
with an uppercase S
which should have been name='salute'
- This would have caused an error in conjunction with $_POST["salute"]
<?php
$submittedValue = "";
$value0 = " ";
$value1 = "mr";
$value2 = "ms";
$value3 = "mrs";
if (isset($_POST["salute"])) {
$submittedValue = $_POST["salute"];
}
$html =null;
//form with data
$html .= "
<form action='' name='salute' method='post'>
<select project='salute' id='salute' name='salute'>
<option value = ' $value0 ' ($value0 == $submittedValue)?' SELECTED':''>$value0</option>
<option value = ' $value1 ' ($value1 == $submittedValue)?' SELECTED':''>$value1</option>
<option value = ' $value2 ' ($value2 == $submittedValue)?' SELECTED':''>$value2</option>
<option value = ' $value3 ' ($value3 == $submittedValue)?' SELECTED':''>$value3</option>
</select>
<input type='submit' name='submit' value='Submit'>
</form>
";
echo $test['main'] = <<<EOD
{$html}
$submittedValue
EOD;
Give this a try. It did echo the dropdown menu, however I am not sure if it's the desired result to work in conjunction with your present ternary operators.
If it's not, I can delete this, or you can modify it.
<?php
$submittedValue = "";
$value0 = " ";
$value1 = "mr";
$value2 = "ms";
$value3 = "mrs";
if (isset($_POST["salute"])) {
$submittedValue = $_POST["salute"];
}
$html =null;
//form with data
$html .= "
<form action='' name='salute' method='post'>
<select project='salute' id='salute' name='Salute'>
<option value = '$value0'($value0 == $submittedValue)?' SELECTED':''>$value0</option>
<option value = '$value1'($value0 == $submittedValue)?' SELECTED':''>$value1</option>
<option value = '$value2'($value0 == $submittedValue)?' SELECTED':''>$value2</option>
<option value = '$value3'($value0 == $submittedValue)?' SELECTED':''>$value3</option>
</select>
</form>
";
echo $test['main'] = <<<EOD
<h1>{$test['title']}</h1>
{$html}
EOD;
Upvotes: 1
Reputation: 762
First
<option value = '<?php echo $value0; ?>'
Should be <option value='$value0'
Now the problem I see is <h1>{$test['title']}</h1>
try $title = $test['title']
before the EOD then
$test['main'] = <<< EOD
<h1>$title</h1>
{$html}
EOD;
Upvotes: 0