Чем больше знаю, тем лучше понимаю, как мало знаю.
Или делать как AliExpress и другие китайские сайты, открывая новый таб на каждый чих. Или не уходить со странички, JavaScript-ом открывая модальное окно с данными "второго уровня". Ну и третий вариант, сложнее - как-то кэшировать AJAX, скроллировать JavaScript-ом.
Соответственно на второй странице сразу делайте поиск этого $_GET['serial_id'], и выводите результат. Ну или если форма нужна-нужна-всенепременнейше - рисуйте эту форму с заполненным из $_GET['serial_id'] полем серийного номера.
Чем больше знаю, тем лучше понимаю, как мало знаю.
Вы уже делаете POST-запрос, для добавления данных в БД.
Так возвращайте добавленные данные в ответе этого-же POST-запроса.
Ну и добавляйте возвращённую строку(и) в вашу таблицу, отдельного запроса просто не нужно.
Чем больше знаю, тем лучше понимаю, как мало знаю.
Ну во-первых, вы берёте значение из $("#cardname") не во время вызова AJAX, а в момент загрузки страницы. Что там пользователь вводил - в переменную cardname уже не попадёт.
Во-вторых проверить прилёт POST запроса в скрипт - религия не позволяет? Простейший var_dump($POST); первой строчкой скрипта - и вопрос снят!
Чем больше знаю, тем лучше понимаю, как мало знаю.
Ну так всё правильно, после записи нового сообщения в БД у вас стоит перенаправление на feed.php, который и выдаёт браузеру страницу с содержимым (которое вам не нравится). Уберите оба "Location:", и добавьте в конце
echo("{$user_id}: {$textuser}<br>");
HTML-тэги добавить по вкусу...
Чем больше знаю, тем лучше понимаю, как мало знаю.
Да, можно. Как передавать данные на сервер, так и принимать данные с сервера. С переменными проблем нет, можно использовать "вредный" способ с eval(), можно распаковывать JSON прямо в переменные, можно создавать переменные на основе скачанных данных.
Чем больше знаю, тем лучше понимаю, как мало знаю.
Так напишите console.log(result == "username-error");, и увидите результат этой проверки. И лучше делать console.dir(result);, тогда будет видна настоящая структура result, может там вообще массив сидит...
Чем больше знаю, тем лучше понимаю, как мало знаю.
Логично же, что AJAX-функция во время своей работы блокирует переход по любым ссылкам. Пока AJAX-функция переходы не разблокирует (получив данные) - переходов и не будет. Ищите не в PHP, а в AJAX-функции в браузере.