Я думаю, что ключевая часть вашего вопроса здесь:
Я могу легко сделать это, используя <input type="submit
"... и сделав значение Wagon_ID, но моя проблема с этим поскольку значение - это Wagon_ID, текст на кнопке также станет Wagon_ID, и текст должен оставаться вводимым.
Для этой ситуации нужны скрытые поля. Не переносите фактическую форму данные в элементе пользовательского интерфейса, например в кнопке. Попробуйте это так:
echo '<form action="" method="post">
<textarea name="textarea" rows="8" cols="40"></textarea>
<input type="hidden" name="wagonID" value="'.$row['Wagon_ID'].'"/>
<input type="submit" class="button" name="enterText" value="Enter text" />
</form>';
А в PHP измените
$wagon=$_POST['enterText'];
на
$wagon = $_POST['wagonID'];
Документация на скрытых полях: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/hidden
PS Как видите, вы можете избавиться от всего беспорядочного экранирования двойных кавычек, повторив строку из PHP внутри одинарные кавычки, и он намного более читабелен и менее подвержен ошибкам.
PPS
Предупреждение: Ваш код уязвим для SQL инъекционных атак. Вы следует использовать параметризованные запросы и подготовленные операторы, чтобы предотвратить взлом злоумышленников. вашу базу данных, используя злонамеренные входные значения. http://bobby-tables.com дает объяснение рисков, а также несколько примеров того, как безопасно писать запросы с помощью PHP / mysqli. Никогда не вставляйте необработанные данные прямо в SQL. Ваш код теперь написан так, что кто-то может легко украсть, неправильно изменить или даже удалить ваши данные.
https://phpdelusions.net/mysqli также содержит хорошие примеры написания безопасного SQL с использованием mysqli. Параметризация запросов также значительно снизит риск случайных синтаксических ошибок в результате неэкранированных входных значений.