bluetxxth
bluetxxth

Reputation: 121

trouble embeding php in EOD tag

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

Answers (2)

Funk Forty Niner
Funk Forty Niner

Reputation: 74220

Edit

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

Craftein
Craftein

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

Related Questions