динамичная форма
будет обьект где он вводит число и нажимает кнопку "исправить", в итоге чимло которое он там ввел должно создать столько форм с именем
имя1
имя2
имя3 и т.д. как это сделать?
В любом случае:
1. Челдобрек жмёт кнопку "ещё поле";
2. Рисуем элемент формы для нового поля.
3. Даём новому полю имя, по которому принимающая сторона будет его идентифицировать.
вот в том то и прикол что я незна как написать, ну либо phP лиюо Джава скрипт
Цитата: SanAdlen
вот в том то и прикол что я незна как написать, ну либо phP лиюо Джава скрипт
дык, определись уже....
На JavaScript это делается с помощью DOM. Весь хэлп лежит на microsoft.com и там всё потрясающе понятно расписано.
еще вопросик, а как сделать это страницы AJAX без перезагрузки страницы...
Код:
<?php
$rows = (int) $_REQUEST['rows'];
for ($i=0;$i<$rows;$i++) {
echo "<input type='text' name='name$i' /><br />";
}
?>
$rows = (int) $_REQUEST['rows'];
for ($i=0;$i<$rows;$i++) {
echo "<input type='text' name='name$i' /><br />";
}
?>
спасибо, а AJAX ка реализовать?
тут.
Тем более, AJAX как таковой нужен, когда требуется обмен данными с сервером. А добавить поле на страничке можно и без этого, если задачка не специфическая.
Это уже RTFM, который, например,
Тем более, AJAX как таковой нужен, когда требуется обмен данными с сервером. А добавить поле на страничке можно и без этого, если задачка не специфическая.
да вот какраз специфическая, буду благодарен если скажешь как сделать без перезагрузки странице, остальное я сделаю сам...
И какова специфика задачи?
вообщем задача такова, нужно что-бы по нажатию кнопки без перезеагрузки странички, показывала столько полей сколько введено было в поле пользователя...
ввёл количество полей, нажал кнопку, появились поля с именами, которые раздает JS.
[html]
<script>
var counter = 1; // предположим что у тебя одно поле уже есть и counter добавлен в конец. ну скажем name1 :)
function add_fields(count) {
var i = counter+1;
for (; i <= (counter+count*1); i++) {
document.getElementById('div_container').innerHTML += counter+") <input type='text' name='name"+i+"'><br>\n";
}
counter += count*1+1;
}
</script>
<body>
<input type="text" id="cnt2add" value="1"><button onclick="add_fields(document.getElementById('cnt2add').value)">Add</button>
<div id="div_container">
<input type="text" name="name1"><br>
</div>
</body>
[/html]
пофиксал, тока там насчет постфикса имени поля я не уверен :D
хочу по теме задать вопрос, есть три формы (select), содержимое которых изменяется взависимости от выбора предыдущих (первая статическая), причём выборка последующих происходит через запрос к базе мускуль. Внимание вопрос(ы)! как прописать в пхп явускрипт (начало и конец) (если не ошибаюсь, то писать все поля через echo, я прав? :) )? если в функции явыскрипт написать выборку (пхп), она будет привязана к этой функции? Ну и собственно главный вопрос, мож у кого уже есть готовый скрипт? :))))
хоть через echo хоть через print, как удобнее....
если ты в PHP напишешь выводом на экран JS, в котором будет голый код PHP, то PHP внутри JS не выполнится.... это же просто вывод...
а если между выводами JS ты будешь писать результаты выборки, которую осуществляет PHP, то всё будет хорошо, ведь это просто строчки... HTML
Vert, без обид, но может быть, тебе стоит подучить PHP и что он может?
просто порой очень долго приходится искать ответ на элементарный вопрос, обидно за время... :(
Если делать генерацию новых форм на JavaScript то исходный код страницы видимый поискавиками будет меньше.
Код:
$rows = (int) $_REQUEST['rows'];
for ($i=0;$i<$rows;$i++) {
echo "Имя:<input type='text' name='name$i' /><br />Тема:<input type='text' name='thm$i' /><br />Сообщение:<textarea name=\"message$i\"></textarea><br />Вложение:<input type=\"file\" name=\"mail_file$i\" maxlength=\"64\" /><br />";
}
for ($i=0;$i<$rows;$i++) {
echo "Имя:<input type='text' name='name$i' /><br />Тема:<input type='text' name='thm$i' /><br />Сообщение:<textarea name=\"message$i\"></textarea><br />Вложение:<input type=\"file\" name=\"mail_file$i\" maxlength=\"64\" /><br />";
}
Обрабатывал если в поле Name(значение) есть более чем .{1,} то тогда делать какоелибо действие например
Код:
echo "Done"
Вообщем проще говоря:
как сделать так что-бы в одном из появляющихся полей, если будет текст более одного символа то тогда выводит "Done и номер поля"
чёт не понял... а где обрабатывать???? когда пользователь тока вводит, или php-скриптом??? :confused:
Цитата:
echo "Done"
обработка будет производиться php-скриптом.
Цитата:
в поле Name(значение) есть более чем .{1,}
По-русски это называется "если поле не пустое" и проверяется условием
Код:
if ($_REQUEST["name$i"] != "") echo "Done";
кстати тот код оьрабатывает число последнее, а надо чтобы все из полей пробивал
Цитата: SanAdlen
кстати тот код оьрабатывает число последнее, а надо чтобы все из полей пробивал
Не могу понять - Вы что, издеваетесь? Какой можеть быть AJAX, если Вы даже о существовании и назначении циклов не знаете? Обзаведитесь для начала книжкой по теме.
можно не издеваться над людьми ) и над своим мозгом :)
можно все сделать на JS и не париться.....
после вывода полей (PHP), можно сгенерить на лету скрипт JS который будет проверять всё поля по очереди, и если длина свойства value поля != 0 , то будет просто писать рядом [COLOR="DarkRed"]Done[/COLOR]
Код:
<?
echo "<table>"
for ($i=0; $i < $_REQUEST["count"]; $i++)
{
echo "<tr>".
"<td><div id='div{$i}'></div></td>\n".
"<td><input type='text' name='name{$i}' id='id{$i}'></td>\n".
"</tr>\n";
}
?>
<script>
for (i=0; i < <?$_REQUEST["count"]?>; i++) {
if (document.getElementById('id'+i).value != "") {
document.getElementById('div'+i).innerHTML = "Done";
}
}
</script>
echo "<table>"
for ($i=0; $i < $_REQUEST["count"]; $i++)
{
echo "<tr>".
"<td><div id='div{$i}'></div></td>\n".
"<td><input type='text' name='name{$i}' id='id{$i}'></td>\n".
"</tr>\n";
}
?>
<script>
for (i=0; i < <?$_REQUEST["count"]?>; i++) {
if (document.getElementById('id'+i).value != "") {
document.getElementById('div'+i).innerHTML = "Done";
}
}
</script>
вроде бы должно сработать.... но так гадать я лично, отказываюсь...
если вам нужна реальная помощь, то будьте так любезны изложить всю задачу целиком, тогда будет проще... :)
С наилучшими пожеланиями ;)