Отображается только первое слово. В переменной нескольких слов отображается

В моей форме у меня есть следующие значения, которые основаны на стандартном запросе PHP / MySql.

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>"; 

Когда значение $location является единственным словом, оно отображается правильно, когда более одного слова говорят, что «Северный кампус» отображает только «Север».

Я удвоил и утроил тройку, и правильное значение находится в базе данных, когда я выполняю эхо-значение для значения $ location, которое дает эхо корректное значение, но когда оно отображается в поле над ним, оно прерывает последнее слово. Это делается для всех моих переменных, которые содержат более одного слова, поэтому я пропустил что-то очевидное.

Вы забыли цитаты:

 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>"; 

Без кавычек будет отмечено первое слово, другие будут интерпретироваться как неправильные атрибуты.

Вы должны поместить свои одинарные кавычки вокруг него, чтобы сделать его допустимым атрибутом. HTML создается как value=North Campus который интерпретируется как value="North" и некоторый атрибут Campus который не имеет значения. Использовать value='$location' .

вам нужно процитировать его, избегая "

 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>";