Создать разделенный запятыми список ссылок с переменной в PHP

У меня есть переменная, которая отображает список имен пользователей. Теперь мне нужно добавить ссылку к каждому имени пользователя. Ссылка состоит из фиксированного URL-адреса и имени пользователя как переменной.

Пример ссылки: https://www.example.org/something?userid= $ имя пользователя

$usernames = $_POST['username'];
$username = '';
foreach($usernames as $value) {
$username .= "'" . $value . "', ";
}
$username = rtrim($username, ', ');

И затем у меня есть построение списка:

<?php  $urls = explode(',', $usernameid);
$nritems = count ($urls); 
$positem = 0;
foreach($urls as $key => $usernameid)
{
echo "<a href = "https://www.example.org/something?userid=' . $usernameid . 
'">'. $usernameid . '</a>";
if (++$positem != $nritems) { echo ", ";}
}?>

Переменная также используется в других частях кода, поэтому я не могу ее изменить. Список сейчас не отображается.

Любая помощь приветствуется.

Обновление: форма:

<form action = "list.php" method = "post" autocomplete = "off">
  <div id = "usrselect">
    <label>Select user <input type = "text" name = "username[]" id = "userid" class = "typeahead" required/></label>
   </div>
   <div class = "button-section"> <input type = "submit" name = "List" /></div>
</form>

Небольшая подсказка https://www.example.org/something?userid=1 создаст $_POST['userid'], где $_POST['userid'] будет соответствовать 1. $ _POST ['username'] даже не существует. Также $_POST['userid'] не будет массивом, и вы не сможете использовать его в foreach. это будет предупреждение.

Eugene Anisiutkin 22.11.2018 08:45

$ POST используется для «перехвата» имени пользователя из поля ввода в форме. Используемый в коде как есть, он работает должным образом. Он возвращает имя пользователя или список имен пользователей (если в форме выбрано больше). Я не могу обойтись без создания ссылок для каждого имени пользователя в этом списке.

SCor 22.11.2018 09:05

Следите за своими цитатами в этой строке echo, "<a href = " не будет работать, как и . '</a>";.

brombeer 22.11.2018 09:09

@SCor, ну часть кода с формой отсутствует. Поэтому я основывал свое предположение на существующем коде. Также добавляем к части цитат - где именно вы получаете $usernameid? Насколько я понимаю, это не определено.

Eugene Anisiutkin 22.11.2018 09:18

@EugeneAnisiutkin: ты прав. Вот недостающая часть (форма)> <form action = "list.php" method = "post" autocomplete = "off"> <div id = "usrselect"> <label> Выберите пользователя <input type = "text" имя = "username []" id = "userid" class = "typeahead" обязательно /> </label> </div> <div class = "button-section"> <input type = "submit" name = "List" / > </div> </form>

SCor 22.11.2018 09:30

@kerbholz: вот что я думаю, мне нужна помощь с .. цитатами. Пробовал несколько версий. Пока ни один из них не работал. Эта версия:

SCor 22.11.2018 09:31

Эта версия: <? Php $ urls = explode (',', $ usernameid); $ nritems = count ($ urls); $ positem = 0; foreach ($ urls as $ key => $ usernameid) {echo "<a href='example.org/something?userid='. $usernameid.''> '. $ usernameid.' </a>"; if (++ $ positem! = $ nritems) {echo ",";}}?> приведет к тому, что переменная не будет передана в ссылку. А текст ссылки - это фактическая переменная с цитатами и точками.

SCor 22.11.2018 09:37

@SCor, убедитесь, что $urls действительно что-то содержит, print_r($urls) сразу после $urls = explode(',', $usernameid);. Кстати, откуда в этой линейке $usernameid? Вы определили $username раньше, но не $usernameid, вы имели в виду $urls = explode(',', $username);?

brombeer 23.11.2018 08:32
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
8
289
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Если вы просто хотите, чтобы ваши цитаты были правильными:

echo '<a href = "https://www.example.org/something?userid='.$usernameid.'">'.$usernameid.'</a>';

или

echo "<a href=\"https://www.example.org/something?userid = {$usernameid}\">{$usernameid}</a>";

или

echo sprintf('<a href = "https://www.example.org/something?userid=%d">%d</a>', $usernameid, $usernameid);

К сожалению, ни один из них не работает. А в последней версии стоит поменять кавычки. "После </a> должно быть"

SCor 22.11.2018 19:31

Это действительные примеры и правильный код, если что-то «не работает», это связано с $usernameid. Я починил ', спасибо.

brombeer 23.11.2018 08:22

переменная фактически содержит правильный $ usernameid (вместо $ username)

SCor 23.11.2018 13:06

Так что же тогда не работает? Неправильный адрес? Неверный идентификатор? У вас есть ошибки в файлах журнала или на экране? Создает ли этот код правильный код для связывания или ошибка где-то еще в вашем коде?

brombeer 23.11.2018 13:10
Ответ принят как подходящий

Рабочее решение для тех, кто может столкнуться с такой же проблемой:

<?php $urls = explode(',', $usernameid);
$nritems = count ($urls); 
$positem = 0;
$displayuser = array("'", " ");
foreach($urls as $key => $usernameid)
{
echo '<a href = "http://www.example.com/something?userId='.str_replace($displayuser, "", $usernameid).'">'.str_replace($displayuser, "", $usernameid).'</a>';
if (++$positem != $nritems) { echo ", ";}
}?>

Другие вопросы по теме