Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/75: Рейтинг темы: голосов - 75, средняя оценка - 4.63
1 / 1 / 0
Регистрация: 15.06.2017
Сообщений: 72

Как передать переменную через ссылку

05.06.2019, 02:42. Показов 14908. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Вопрос для опытных программистов простой, наверное )

Есть ссылка в таблице
PHP
1
<td><a href='/pokdelete.php'>Удалить</a></td>
в файле index.php

Как передать в файл pokdelete.php переменную массива $row['pokid'], значение которой присваивается в файле index.php через fetch_array?

Это значение должно быть передано в файл pokdelete.php при нажатии вышеуказанной ссылки.

Спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.06.2019, 02:42
Ответы с готовыми решениями:

Как методом post передать данные не через submit, а через ссылку?
У меня сейчас выводится кнопка с ником, при нажатии на которую выводится подробная информация о пользователе с помощью такого кода. echo...

Как передать ссылку через get в ссылке.
Как я сделал: localhost/go.html?url=ССЫЛКА Например ссылка youtube.com - тогда будет так: localhost/go.html?url=youtube.com ...

Как передать данные в файл через ссылку
Здравствуйте. Хочу передать из файла '../views/readers.php' значение из массива $row ссылкой в файл '../controllers/view.php' . Пытаюсь...

11
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
05.06.2019, 08:02
Через GET-параметр
0
1 / 1 / 0
Регистрация: 15.06.2017
Сообщений: 72
05.06.2019, 08:37  [ТС]
Jodah, спасибо! Это понятно, но я не пойму, как массив $row [‘pokid’] передать через гет параметры, у меня всегда выдаёт syntax error.
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
05.06.2019, 08:41
Андрей20000,
PHP/HTML
1
<td><a href='/pokdelete.php?id=<?= $row ['pokid'] ?>'>Удалить</a></td>
0
1 / 1 / 0
Регистрация: 15.06.2017
Сообщений: 72
06.06.2019, 02:10  [ТС]
Цитата Сообщение от Jodah Посмотреть сообщение
1
<td><a href='/pokdelete.php?id=<?= $row ['pokid'] ?>'>Удалить</a></td>

Спасибо, я думаю, что где-то близко, но в результате в таблице "Удалить" показывается так

А в строке ссылки такая надпись: http://test.ru/pokdelete.php?id=%3C?=%20Array%20[

При этом переменная не передаётся. Проверял кодом:

PHP
1
2
3
echo  '#1#';
print_r($_POST['pokid']);
echo '@1@';
Где-то совсем мизерная ошибка

Добавлено через 8 минут
<?= $row ['pokid'] ?>

Я правильно понимаю, что эта часть означает выделение кода php?

Почему-то '> перед Удалить не восприняло как код.

Вот с этим синтаксисом полная путаница у меня, в какой части php документации про это написано?

Например, я не понимаю, почему кавычки одинарные, хотя везде в документации двойные должны быть. А двойные вообще ошибку выдают, сработали только одинарные.

Добавлено через 37 минут
Убрал вообще кавычки в ['pokid'], сделал [pokid]

Сразу же "Удалить" стало корректно отображаться и строка стала такого вида: http://test.ru/pokdelete.php?i... 20Array%20[pokid]%20?%3E

Добавлено через 50 минут
В общем продолжаю биться над проблемой

Может быть, переформулирую вопрос:

Есть вывод данных из MYSQL в таблицу PHP через fetch_array:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$mysqli = new mysqli("localhost", "user2", "123", "kvartira");
    $result2 = $mysqli->query("SELECT pokupatel.fio as pokfio, pokupatel.telefon as poktelefon, pokupatel.komnat_ot as pokkomnat, pokupatel.metraj_ot as pokmetraj, pokupatel.budjet_do as pokbudjet, pokupatel.metro as pokmetro, pokupatel.sostoyanie as poksostoyanie, pokupatel.primechanie as pokprimechanie, pokupatel.id as pokid FROM pokupatel");
    echo "<table border=1>\n";
    echo "<tr><td>ФИО</td><td>Телефон</td><td>Комнат от</td><td>Метраж от</td><td>Бюджет до</td><td>Ближайшее метро</td><td>Состояние квартиры</td><td>Примечание</td><td></td></tr>\n";
    while($row = $result2 -> fetch_array()) {
    
        printf("<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>\n", $row['pokfio'], $row['poktelefon'], $row['pokkomnat'], $row['pokmetraj'], $row['pokbudjet'], $row['pokmetro'], $row['poksostoyanie'], $row['pokprimechanie'], $row['pokid']);
    }
   
    
    echo "</table>\n"; 
       
    $result2->close();
    $mysqli->close();
Как лучше и безопаснее добавить туда кнопку удаления строки? Перелопатил форумы, предлагают через GET параметры, но в них есть уязвимость. Да и с Гет параметрами я как раз выше мучился, что-то всё время с синтаксисом проблемы. Может есть более простой и безопасный способ? )
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
06.06.2019, 10:18
Лучший ответ Сообщение было отмечено Андрей20000 как решение

Решение

Цитата Сообщение от Андрей20000 Посмотреть сообщение
в какой части php документации про это написано?
https://www.php.net/manual/ru/... hpmode.php
https://www.php.net/manual/ru/... t-open-tag

Цитата Сообщение от Андрей20000 Посмотреть сообщение
А двойные вообще ошибку выдают, сработали только одинарные.
Значит вы не весь код показали. Видимо этот кусок кода был внутри двойных кавычек.

Не надо мучиться с echo и printf, сами потом в этой каше не разберётесь.

Лучше так:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
// тут php код
?>
    <table>
        <tr>
            <td>ФИО</td>
            <td>Телефон</td>
        </tr>
    
        <?php while($row = $result2 -> fetch_array()): ?>
        <tr>
            <tr>
                <td><?= $row['pokfio'] ?></td>
                <td><?= $row['poktelefon'] ?></td>
            </tr>
        </tr>
        <?php endwhile ?>
    </table>
<?php
// тут ещё php код
Цитата Сообщение от Андрей20000 Посмотреть сообщение
почему кавычки одинарные
https://www.php.net/manual/ru/... string.php

В данном случае разницы нет, хотя я предпочитаю одинарные там, где не предполагается подстановка переменных или спецсимволов, что возможно только в двойных кавычках.

Цитата Сообщение от Андрей20000 Посмотреть сообщение
Может есть более простой и безопасный способ? )
Либо простой (get-параметры), либо безопасный (кнопку обернуть форму и отправлять методом post)
0
1 / 1 / 0
Регистрация: 15.06.2017
Сообщений: 72
06.06.2019, 15:16  [ТС]
Цитата Сообщение от Jodah Посмотреть сообщение
(кнопку обернуть форму и отправлять методом post)

Спасибо! С кавычками и с синтаксисом вставки php полностью разобрался )

Вот метод POST наиболее интересует.

Но тогда вот вопрос: в этой таблице

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<table>
        <tr>
            <td>ФИО</td>
            <td>Телефон</td>
        </tr>
    
        <?php while($row = $result2 -> fetch_array()): ?>
        <tr>
            <tr>
                <td><?= $row['pokfio'] ?></td>
                <td><?= $row['poktelefon'] ?></td>
                <td><form method='POST' action='/pokdelete.php'><input name='pokid' type='submit' value='Удалить'/></form></td>
            </tr>
        </tr>
        <?php endwhile ?>
    </table>
Кнопка "Удалить" успешно добавляется через вышеуказанный способ.

А как передать значение массива $row['pokid'] методом POST? Куда тут воткнуть переменную $row['pokid'], чтоб она передалась в файл pokdelete.php?
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
06.06.2019, 15:20
Лучший ответ Сообщение было отмечено Андрей20000 как решение

Решение

HTML5
1
<input type ='hidden' name='' value='сюда передаем переменные'>
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
06.06.2019, 15:22
del. опередили
0
1 / 1 / 0
Регистрация: 15.06.2017
Сообщений: 72
06.06.2019, 15:23  [ТС]
Цитата Сообщение от andyyy Посмотреть сообщение
<input type ='hidden' name='' value='сюда передаем переменные'>
Осталось совсем чуть-чуть, чувствую )) Тогда не понятно: раньше в value была надпись "Удалить", а её тогда куда?
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
06.06.2019, 15:35
удалить в submit, а hidden это доп поле
0
1 / 1 / 0
Регистрация: 15.06.2017
Сообщений: 72
06.06.2019, 16:26  [ТС]
Всё получилось! Переменная передалась ) Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.06.2019, 16:26
Помогаю со студенческими работами здесь

Как передать сообщение с HTML-тегами через PHP переменную на мейл?
Как передать сообщение с HTML-тегами через PHP переменную на мейл? Вот сам код: $sro = $_POST; $name = $_POST; ...

Не выходит передать ссылку на изображения через input
Не выходит передать ссылку на изображения через input Через index.php через input надо указать ссылку на изображения и через ...

Передать переменную через textbox
Есть слудующий код: &lt;form action=&quot;square.php&quot; method=&quot;POST&quot;&gt; &lt;input type=&quot;text&quot; name=&quot;stepien&quot; class=&quot;funkcjakwadrat&quot;...

Не получается передать переменную через форму
подскажите, что не так. вот код: &lt;?php if (isset($_GET)) { $id = $_GET; } echo '&lt;form action=&quot;dobcat.php&quot;...

не могу передать через строку браузера имя файла в переменную
всех приветствую.. новичку нужна помощь. задача простая до нельзя - есть много jpg картинок, каждую из них нужно с главной страницы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru