|
|
|
| Здравствуйте, есть таблица в которую выводятся id, продавец, наименование и кол-во товара из бд, рядом с товаром
кнопка "купить" помогите прикрутить к каждой кнопке свой ID чтобы я мог прописать общее условие (что должно происходить при нажатии (списание средств и добавление товара)). Ни как не получается, подскажите куда в коде
нужно прописать условие и как назначить ID для каждой кнопки.
<?
$query = "select * from st_rinok";
$result = MYSQL_QUERY($query);
$total_rows = mysql_num_rows($result);
if (!$total_rows) {
print "<HTML><BODY><h1>Table $name is empty</h1></BODY></HTML>";
return;
}
$row = mysql_fetch_row($result);
$total_cols = count($row);
print "<table class='table_price'>";
print "<caption>Рынок</caption>";
print "<tr>";
echo '<tr>';
echo '<th>' .№. '</th>';
echo '<th>' .Продавец. '</th>';
echo '<th>'.Товар.'</th>';
echo '<th>'.Кол.'</th>';
echo '<th>'.Цена.'</th>';
echo '<th>'.Купить.'</th>';
echo '</tr>';
echo '<tr>';
print "</tr>";
while($row = mysql_fetch_row ($result)) {
$i = 0;
print "<tr>";
while($i < $total_cols){
print "<td>";
print $row[$i];
print "</td>";
$i++;
}
print "<td>";
print "<form method='POST'><input type='submit' / id= ? как то назначить/ name='button' value='Купить' /></form>";
//и где в коде прописать условие Что происходит при нажатии на кнопку.
print"</td>";
print "</tr>";
}
mysql_free_result($result);
echo '</tr>';
print "<HTML><BODY>";
$i=0;
while($i < $total_cols){
print "<td>";
print $row[$i];
print "</td>";
$i++;
}
print "</tr>";
while($row = mysql_fetch_row ($result)) {
$i = 0;
print "<tr>";
while($i < $total_cols){
print "<td>";
print $row[$i];
print "</td>";
$i++;
}
print "</tr>";
}
mysql_free_result($result);
print "</TABLE></BODY></HTML>";
?>
|
| |
|
|
|
|
|
|
|
для: Stunnets
(23.03.2016 в 23:36)
| | Офигеть. Форма должна быть одна, а вот кнопок отправки формы может быть несколько, которая и может отправлять ID. А можно отправлять и группу выбранных одной кнопкой отправки. | |
|
|
|
|
|
|
|
для: confirm
(24.03.2016 в 06:28)
| | Можете пример показать как работать с id в моем примере
<form method='POST'><input type='submit' / id= ? как то назначить/ name='button' value='Купить' /></form>";
хоть какие нибудь примеры таблицы товаров с кнопкой купить . Потому что новичок в программировании, смысл работы понимаю, а на практике сделать не получается. Можете показать пример работы скрипта. Из БД выводиться строка с товаром продавец id и кол-во как обьяснить кнопке что нужно выбрать именно ту строку на против которой она находится? | |
|
|
|
|
|
|
|
для: Stunnets
(24.03.2016 в 10:32)
| | Если товар продается штучно, то до цикла
<form method="post" action="url">
<table>
while($row = mysql_fetch_row ($result)) {
далее в цикле выводятся строки таблицы, в которых помимо описания товара помещается чекбокс - выбранный будет передавать id товара выбранного для покупки, таким образом сервер получит массив выбранных для покупки товаров:
<label><input type="checkbox" name="good[]" value="здесь $row['имя_поля_идентификатора_товара_из_базы']" /> Выбарть для покупки</label>
}
<table>
<input type="submit" value="Купить" />
</form>
Если можно выбрать количество товара, тогда чекбокс заменить на поле типа text или number, его имя должно быть
good[здесь $row['имя_поля_идентификатора_товара_из_базы']]
тогда на сервере будут получен массив выбранных для покупки товаров, ключи которого будут их идентификаторами, а значения выбранное количество. | |
|
|
|
|
|
|
|
для: confirm
(24.03.2016 в 16:25)
| | Пожалуйста помогите прикрутить Это непосредственно в сам скрипт
<?
$query = "select * from st_rinok";
$result = MYSQL_QUERY($query);
$total_rows = mysql_num_rows($result);
if (!$total_rows) {
print "<HTML><BODY><h1>Table $name is empty</h1></BODY></HTML>";
return;
}
$row = mysql_fetch_row($result);
$total_cols = count($row);
print "<table class='table_price'>";
print "<caption>Рынок</caption>";
print "<tr>";
echo '<tr>';
echo '<th>' .№. '</th>';
echo '<th>' .Продавец. '</th>';
echo '<th>'.Товар.'</th>';
echo '<th>'.Кол.'</th>';
echo '<th>'.Цена.'</th>';
echo '<th>'.Купить.'</th>';
echo '</tr>';
echo '<tr>';
print "</tr>";
while($row = mysql_fetch_row ($result)) {
$i = 0;
print "<tr>";
while($i < $total_cols){
print "<td>";
print $row[$i];
print "</td>";
$i++;
}
print "<td>";
print "<form action='rinok.php' method='post'><input type='submit' id='$id' name='button' value='Купить' /></form>";
print"</td>";
print "</tr>";
}
mysql_free_result($result);
echo '</tr>';
print "<HTML><BODY>";
$i=0;
while($i < $total_cols){
print "<td>";
print $row[$i];
print "</td>";
$i++;
}
print "</tr>";
while($row = mysql_fetch_row ($result)) {
$i = 0;
print "<tr>";
while($i < $total_cols){
print "<td>";
print $row[$i];
print "</td>";
$i++;
}
print "</tr>";
}
mysql_free_result($result);
print "</TABLE></BODY></HTML>";
?>
|
Если можно выбрать количество товара, тогда чекбокс заменить на поле типа text или number, его имя должно быть
good[здесь $row['имя_поля_идентификатора_товара_из_базы']]
хочу сделать чтобы можно было выбирать кол-во покупаемого товара, для этого делаю поле для выбора кол-ва number
но получаю только синтаксические ошибки
print "<label><input type='checkbox' name='good[]' value='здесь $row[`здесь пишу id это поле по которому идет идентификация, но ругается на кавычки `` `]' /> Выбарть для покупки</label>
";
никак не получается заставить работать этот код , если какая то информация нужна по таблице или данным все напишу.
Пожалуйста научите сделать, очень нужно | |
|
|
|
|
|
|
|
для: Stunnets
(25.03.2016 в 01:16)
| | Выбросить все это и не повторять один и тот же код. Отвечать надо на вопросы, если хотите получать ответы, а то рассказывал, рассказывал, и все равно тулится куча кнопок. И имена полей SQL таблицы указывать, а то спрашиваете как без указания полей. В примере условно указаны, поля:
seller - продавец
name - товар
price - цена
id - идентификатор
Поля перечислены в тексте запроса в том порядке, в котором они будут выводиться, а id последний, потому как он не выводится и используется как ключ в имени поля формы
Строки, в которых не нужно производить разбор в поисках php-переменных лучше заключать в одинарные кавычки, а в них двойные, а не как у вас одинарные в двойных, тем самым напрасно нагружая парсер разбором. Основной HTML код страницы нужно выводить как есть, а не echo ....
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style>
table {
border-collapse: separate;
width: 100%;
}
th {
padding: 6px 10px;
background: #E3EBEF;
}
td {
border: 1px solid #ddd;
padding: 6px 10px;
}
</style>
<script>
</script>
</head>
<body>
<?php
//это чисто для проверки отправления формы, после выполнения удалить
if($_POST['good'] && $good = array_diff(array_map('intval', $_POST['good']), [0])) {
echo '<pre>';
print_r($good);
echo '</pre>';
}
//где-то, где не известно, происходит подключение к базе
//далее запрос и вывод таблицы
$result = mysql_query("SELECT seller, name, price, id FROM st_rinok") or die (mysql_error());
if(mysql_num_rows($result)) {
echo '<form method="post"><table class="table_price"><caption>Рынок</caption><tr><th>№</th><th>Продавец</th><th>Товар</th><th>Цена, руб.</th><th>Кол-во для покупки</th></tr>';
for($i=1; $row = mysql_fetch_assoc($result); $i++) {
$row = array_map('htmlspecialchars', $row);
echo '<tr><td>'.$i.'</td><td>'.implode('</td><td>', array_slice($row, 0, 3)).'</td><td><input type="number" min="0" step="1" name="good['.$row['id'].']" /></td></tr>';
}
echo '</table><input type="submit" value="Купить выбранное количество" /></form>';
} else echo '<p>Товаров нет.</p>';
?>
</body>
</html>
|
Можно выбрать различные количества нескольких товаров, а после выбора отправить форму, одной кнопкой.
Сохраните этот код как php-файл и выполните, смотрите что будет в массиве $good, это и есть выбранные товары, ключ, это id, значение, это выбранное его количество. | |
|
|
|
|
|
|
|
для: confirm
(25.03.2016 в 16:48)
| | когда-то искал код, и именно для этих целей, но он был немного другой, но я и этот сохраню,спасибо | |
|
|
|