Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: переменные из javascript в PHP
 
 автор: lord   (30.11.2005 в 16:20)   письмо автору
 
 

Вобщем имеется такая форма:

<form enctype='multipart/form-data' action='test2.php' method=post>
<script>
var c=0; //счётчик количества строк
function addline()
{
c++; // увеличиваем счётчик строк
s=document.getElementById('table').innerHTML; // получаем HTML-код таблицы
s=s.replace(/[\r\n]/g,''); // вырезаем все символы перевода строк
re=/(.*)(<tr id=.*>)(<\/table>)/gi; 
                // это регулярное выражение позволяет выделить последнюю строку таблицы
s1=s.replace(re,'$2'); // получаем HTML-код последней строки таблицы
s2=s1.replace(/\[\d+\]/gi,'['+c+']'); // заменяем все цифры к квадратных скобках
                // на номер новой строки
s2=s2.replace(/(rmline\()(\d+\))/gi,'$1'+c+')');
                // заменяем аргумент функции rmline на номер новой строки
s=s.replace(re,'$1$2'+s2+'$3');
                // создаём HTML-код с добавленным кодом новой строки
document.getElementById('table').innerHTML=s;
             
                // возвращаем результат на место исходной таблицы
return false; // чтобы не происходил переход по ссылке
}
function rmline(q)
{
                 if (c==0) return false; else c--;
                // если раскомментировать предыдущую строчку, то последний (единственный) 
                // элемент удалить будет нельзя.
s=document.getElementById('table').innerHTML;
s=s.replace(/[\r\n]/g,'');
re=new RegExp('<tr id="?newline"? nomer="?\\['+q+'.*?<\\/tr>','gi');
                // это регулярное выражение позволяет выделить строку таблицы с заданным номером
s=s.replace(re,'');
                // заменяем её на пустое место
document.getElementById('table').innerHTML=s;
return false;
}
</script>
<span id="table">
<table border=0 cellspacing=0 cellpadding=3>
<tr>
  <td>Дата</td>
  <td>Время</td>
  <td>Место</td><td>
<a href="#" onclick="return addline();">добавить</a></td></tr>
<tr id="newline" nomer="[0]">
<td><input type="text" name="date[0]"></td>
<td><input type="text" name="sean[0]"></td>
<td><input type="text" name="place[0]"></td>
<td valign="top"><a href="#" onclick="return rmline(0);">удалить</td></tr></table>
</span>
<input class=button type=submit value=передать>
</form>

В файле test2.php надо получить переменую "c". Либо как-то узнать сколько раз я добавил поля в форме.

   
 
 автор: WebTech   (30.11.2005 в 16:52)   письмо автору
 
   для: lord   (30.11.2005 в 16:20)
 

Ну, добавь в форме что-нибудь типа:

document.write('<input type="hidden" name="var_c" value="'+c+'">')

т.е. скрытое поле, у которого в value будет твоя переменная "с". И в test2.php ее потом выловить.

   
 
 автор: lord   (30.11.2005 в 17:27)   письмо автору
 
   для: WebTech   (30.11.2005 в 16:52)
 

Что-то у меня не получается... Я хочу эту переменную получить в другом файле вот так

<?print_r($_POST);
echo 
"Переменная : ".$_POST['var_c']; 
?>

   
 
 автор: lord   (30.11.2005 в 18:12)   письмо автору
 
   для: lord   (30.11.2005 в 17:27)
 

На самом деле оказалось просто посчитать количество новых полей. Так как у меня получается массив, то я могу узнать его размер, который и будет равен количеству полей.
Спасибо.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования