Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Only first word In a multi word variable is being displayed

Tags:

html

php

In my form I have the following values that are based on a standard PHP/MySql query.

echo "<tr>\n
        <td align='right'><b>Location</b></td>
        <td><input name='student_location' type='text' size='25' style='font-weight: 700' value=$location></td>
    </tr>";

When the value of $location is a single word it displays properly, when it is more than one word say 'North Campus' only 'North' displays.

I've doubled and triple checked and the correct value is in the database, when I do an echo for the value of $location it echoes the correct value but when it's displayed in the field above it chops the last word. It's doing it to all of my variables that are more than one word, so I've missed something obvious.

like image 464
Hank Wilson Avatar asked Dec 03 '22 03:12

Hank Wilson


2 Answers

You forgot quotes :

echo "<tr>\n
    <td align='right'><b>Location</b></td>
    <td><input name='student_location' type='text' size='25' style='font-weight: 700' value=\"$location\"></td>
</tr>";

Without quotes, the first word will be noted, others will be interpreted as wrong attributes.

like image 78
zessx Avatar answered Jan 02 '23 16:01

zessx


You need to put your single quotes around it to make it a valid attribute. The HTML is being created as value=North Campus which gets interpreted as value="North" and some Campus attribute that has no value. Use value='$location'.

like image 21
animuson Avatar answered Jan 02 '23 15:01

animuson