У меня есть переменная, которая отображает список имен пользователей. Теперь мне нужно добавить ссылку к каждому имени пользователя. Ссылка состоит из фиксированного 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>
$ POST используется для «перехвата» имени пользователя из поля ввода в форме. Используемый в коде как есть, он работает должным образом. Он возвращает имя пользователя или список имен пользователей (если в форме выбрано больше). Я не могу обойтись без создания ссылок для каждого имени пользователя в этом списке.
Следите за своими цитатами в этой строке echo, "<a href = " не будет работать, как и . '</a>";.
@SCor, ну часть кода с формой отсутствует. Поэтому я основывал свое предположение на существующем коде. Также добавляем к части цитат - где именно вы получаете $usernameid? Насколько я понимаю, это не определено.
@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>
@kerbholz: вот что я думаю, мне нужна помощь с .. цитатами. Пробовал несколько версий. Пока ни один из них не работал. Эта версия:
Эта версия: <? 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, убедитесь, что $urls действительно что-то содержит, print_r($urls) сразу после $urls = explode(',', $usernameid);. Кстати, откуда в этой линейке $usernameid? Вы определили $username раньше, но не $usernameid, вы имели в виду $urls = explode(',', $username);?






Если вы просто хотите, чтобы ваши цитаты были правильными:
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> должно быть"
Это действительные примеры и правильный код, если что-то «не работает», это связано с $usernameid. Я починил ', спасибо.
переменная фактически содержит правильный $ usernameid (вместо $ username)
Так что же тогда не работает? Неправильный адрес? Неверный идентификатор? У вас есть ошибки в файлах журнала или на экране? Создает ли этот код правильный код для связывания или ошибка где-то еще в вашем коде?
Рабочее решение для тех, кто может столкнуться с такой же проблемой:
<?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 ", ";}
}?>
Небольшая подсказка
https://www.example.org/something?userid=1создаст$_POST['userid'], где$_POST['userid']будет соответствовать1. $ _POST ['username'] даже не существует. Также$_POST['userid']не будет массивом, и вы не сможете использовать его вforeach. это будет предупреждение.