|
|
|
| У меня сайт с базой данных. Мне нужно, чтобы новая запись добавлялась в отдельном окне.
В этом окне форма для выбора категории товара:
<form action="..." method="post" name="formVyborMat">
<br>Выберите категорию материала: <br>
<select name="vybor_kategorii">
<option selected value="0"> </option>
<option value="1"> Изоляционные </option>
<option value="2"> Инструменты </option>
<option value="3"> Конструкции </option>
<option value="4"> Кровельные </option>
<option value="5"> Отделочные </option>
<option value="6"> Расходные </option>
<option value="7"> Сантехматериалы </option>
<option value="8"> Электроматериалы </option>
</select><br><br>
<input type="button" value="Сохранить" onclick=" ">
</form>
Какую функцию мне написать на событие onclick=" ", чтобы добавлялись данные из полей формы в строку таблицы (вставка в таблицу PHP-кодом)?
Мне нужно брать значения из полей путём JavaScript:
function znachenie(){
$kat = document.formVyborMat.vybor_kategorii.value;
return $kat;
}
или путём PHP:
function znachenie1(){
$kat = $_POST['ed_nov_mat'];;
return $name;
}
?????? | |
|
|
|
|
|
|
|
для: Stasycat
(22.02.2008 в 15:25)
| | Зачем вам брать значения путем JS, если вставлять в РНР (на сервере)? Отправьте форму, получите данные, вставляйте, отображайте - зачем onclick. | |
|
|
|
|
|
|
|
для: sim5
(22.02.2008 в 15:59)
| | так я не знаю как их взять! Ведь форма-то (окошко) открывается и закрывается потом, и данные никуда не отправляются.
Ведь данные передаются только странице, которая указана в action=""?
Или вообще в буфер? Я не понимаю, поясни, плиз))
Можно ли сразу внести в поле значение и тут же получить его через $_POST[] ? Чтобы именно в этом окошке все данные уже были внесены, до его закрытия. | |
|
|
|
|
|
|
|
для: Stasycat
(22.02.2008 в 17:31)
| | Если у вас в action формы будет указано, например:
<form action="main.php" method="post" name="formVyborMat">
|
то при отправке (а обычно это делает <input type="submit">), будет запрошена страница main.php, на которой и должен быть скрипт обработки полученных данных из формы. В вашем случае $_POST['vybor_kategorii'] будет содержать выбранное значение в списке.
Чтобы сразу увидеть приняты или нет введенные занчения на сервере (обработаны они или нет) - вам нужен AJAX. А вот сделать проверку на ввод значений в поле или его отсутствие - это можно на JS, сервер для этого не нужен, хотя проверять на сервере это очень желательно. | |
|
|
|
|
|
|
|
для: sim5
(22.02.2008 в 18:16)
| | Но мне не надо передавать эти данные на другую страницу!
Мне надо сразу их сохранить (добавить в базу данных то, что написали в полях формы), если будет нажата кнопка "Сохранить"
Если же будет нажата только кнопка "Закрыть", то ничего не сохранять.
Как я могу передать на другую страницу параметр - была ли нажата кнопка "Сохранить"???
За пару минут человек может захотеть внести десяток новых товаров, а кнопку нажать 15 раз, т.е. при открытии страницы main.php у меня будут добавляться пустые записи, т.к. кнопка была нажата и не один раз.
Нужно чтобы кнопка
<input type="button" name="otvet" value="Сохранить" onclick="confirm ('Сохранить данные?')">
позволяла или запрещала потом выполняться коду НА ЭТОЙ ЖЕ странице.
Код - добавление новой записи в базу данных. | |
|
|
|
|
|
|
|
для: Stasycat
(26.02.2008 в 10:46)
| | Детсад какой-то, честное слово!
Вы сформулировать проблему попробуйте РУССКИМ языком, а не междометиями.
Когда сформулируете - приходите, поможем.
А пока приходится догадываться - чего же это вам надо-то? | |
|
|
|
|
|
|
|
для: CNTv2.0
(26.02.2008 в 11:32)
| | Да что тут непонятного?
У меня есть страница просмотра товаров results.php
На ней есть кнопка "Добавить товар"
При нажатии она открывает маленькое окошко-страницу dobavlenie.php с формой для ввода данных товара.
Данные сохраняются при нажатии кнопки "Сохранить" сразу в БД tovary.
Окошко закрывается.
Страница results.php при обновлении выдаёт старые товары + новый товар.
При чём из формы страницы dobavlenie.php никаких данных странице results.php не должно передаваться. Только обновление. | |
|
|
|
|
|
|
|
для: Stasycat
(26.02.2008 в 11:55)
| | Вникайте:
1. Добавление в БД - это работа серверного сценария.
2. Значит, при клике по кнопке "Сохранить" в окошке вам НЕОБХОДИМО ВЫЗВАТЬ серверный сценарий.
3. Вызов серверного сценария - это, во-первых, прописывание пути к этому сценарию в атрибуте ACTION тега <FORM>. И, во-вторых, это необходимость ИМЕТЬ ОКНО, в коем должны отражаться результаты работы сценария.
Усекли, к чему я это написал?
Разжевываю: внести добавку в БД и закрыть окошко dobavlenie.php ОДНОВРЕМЕННО (и БЕЗ ИЗМЕНЕНИЙ в вызывающей странице results.php) НЕЛЬЗЯ, ибо серверному сценарию НЕОБХОДИМО ИМЕТЬ хоть где-то открытое ОКНО, где и будет исполняться сценарий.
Въехали?
Вариантов решения вижу 2.
Первое: после нажатия кнопки "Сохранить" окошко dobavlenie.php не закрывается, а ждет окончания загрузки в него результатов сценария, указанного в ACTION формы. А в этих результатах прописываете скрипт
onload = function () {window.close ()}
|
Второе: в файле results.php предусматриваете невидимый <IFRAME>, именно из которого идет открытие нового окна dobavlenie.php, а в форме в файле dobavlenie.php прописываете TARGET="_parent" + по окончании сабмита (через setTimeout) инструкция window.close ()
Ну а результат работы сценария должен снова содержать функцию открытия окна для нового добавления.
Всё понятно? Или не очень? :-) | |
|
|
|