[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: нужна помощь с формой
midd
Всем привет. я только начинаю что-то соображать в php и столкнулся с первой стеной... надеюсь с Вашей помощью мне удастся ее преодолеть, Сразу скажу спасибо всем кто поможет.

Итак, преступим:

с горем пополам, с божьей помощью написал скрипт

<?
header ("Content-type: text/plain; charset=utf-8");
$text = "dazrulez [1009] 0 offline 2011-02-28
AIP [1528] 0 offline 2010-08-10
Evkolibrium [1710] 0 offline 2011-05-08
Beast [1915] 0 offline 2011-04-25
Saddick [2104] 0 offline 2011-05-19
Street [2390] 0 offline 2011-05-17
Zezima [2450] 0 offline 2011-05-08
immidan [2566] 0 offline 2011-05-18
Forsaken [2708] 0 offline 2011-05-18
Greif [2800] 0 offline 2011-05-15
Desecration [2912] 0 offline 2011-05-10
evill [3049] 0 offline 2011-05-18
PEKBuEM [3185] 0 offline 2010-03-25
FastKill [3520] 0 offline 2011-05-19
HAINEKEN [3560] 0 offline 2011-05-02"
;

preg_match_all("/\[([0-9]+)\]/si", $text, $result);

foreach ($result[1] as $num)
echo $num."\n";


и есть формочка (сделал на быструю руку в html)
user posted image

код ее

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>
Untitled Document</title>
<style
type="text/css">
<!--
.tabname {
font-family: Verdana, Geneva, sans-serif;
color:#900;
font-size:11px



}
-->

</style>
</head>

<body>
<table
width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<th
class="tabname" scope="col">До обработки</th>
<th
class="tabname" scope="col">После обработки</th>
</tr>
<tr>
<td
width="50%" align="center"><textarea style="width: 95%; height: 153px; background-color: lightgrey;" name="">Здесь список до обработки</textarea></td>
<td
width="50%" align="center"><textarea style="width: 95%; height: 153px; background-color: lightgrey;" name="">Здесь список после обработки</textarea></td>
</tr>
<tr>
<td
width="100%" align="center" colspan="2"><input type="submit" style="width:100px;" value="Обработать"></td>
</tr>
</table>
</body>
</html>



Собственно вопрос в следующем , как мне совместить 2 данные кода, чтобы оно все функционировало. Заранее благодарю за помощь и советы!!!
Если нужна быстрая связь мой icq номер : 332579086




Спустя 5 минут, 47 секунд (24.06.2011 - 22:39) SoMeOnE написал(а):
А где собственно форма?
Надо прописать name. передавать методом post. После обрабатывать.

Начни с этого. Здесь подробно все объясняется
http://irbis-team.com/15/5/2

Спустя 9 секунд (24.06.2011 - 22:39) Winston написал(а):
А что нужно обрабатывать ?
Вставляешь текст, а после обработки выбираются цифры ?

Спустя 2 минуты, 17 секунд (24.06.2011 - 22:41) midd написал(а):
Также хочу отметить что суть php скрипа такова : мы в одно поле вводим текст такого характера - AIP [1528] 0 offline 2010-08-10, в другом после обработки получаем урезанную версию только в виде цифр заключенные в "[" и "]", то есть в нашем случае это - 1528. Если мой скрипт написан не правильно попрошу Вас подкорректировать его и предложить наиболее лучшую альтернативу. Спасибо!

Спустя 4 минуты, 55 секунд (24.06.2011 - 22:46) XCross написал(а):
дак тут все оч просто. Прими данные из формы, обработай и обратно в форму.

Спустя 3 минуты, 59 секунд (24.06.2011 - 22:50) midd написал(а):
просто когда все понимаешь, я это вижу только визуально как оно должно быть, а вот как реализовать в коде, умений не хватает sad.gif

Спустя 1 минута, 15 секунд (24.06.2011 - 22:51) midd написал(а):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>
Untitled Document</title>
<style
type="text/css">
<!--
.tabname {
font-family: Verdana, Geneva, sans-serif;
color:#900;
font-size:11px



}
-->

</style>
</head>

<body>
<form
method="GET" action="script.php">
<table
width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<th
class="tabname" scope="col">До обработки</th>
<th
class="tabname" scope="col">После обработки</th>
</tr>
<tr>
<td
width="50%" align="center"><input type="text" class="textbox" size="100" height="400" value="Здесь список до обработки" name="before"></td>
<td
width="50%" align="center"><input type="text" class="textbox" size="100" height="400" value="Здесь список после обработки" name="after"></td>
</tr>
<tr>
<td
width="100%" align="center" colspan="2"><input type="submit" style="width:100px;" value="Обработать"></td>
</tr>
</table>
</form>
</body>
</html>



исправил html форму, теперь она действительно форма

Спустя 9 минут, 9 секунд (24.06.2011 - 23:00) SoMeOnE написал(а):
midd
Теперь форма.

Только поставь метод POST вместо GET.
В скрипте прими переменную. Что то вроде этого
if (!empty($_POST['send'])) {
$text = $_POST['before']
}

потом обрабатывай как хочешь.

Еще надо исправить этот момент
<td width="100%" align="center" colspan="2"><input type="submit" name="send" style="width:100px;" value="Обработать"></td>

Спустя 2 минуты, 26 секунд (24.06.2011 - 23:03) SoMeOnE написал(а):
А вместо этого
<td width="50%" align="center"><input type="text" class="textbox"  size="100" height="400" value="Здесь список после обработки" name="after"></td>

впиши ту переменную которую получишь после обработки
<td width="50%" align="center"><input type="text" class="textbox"  size="100" height="400" value="<?php echo $text2 ?>" name="after"></td>

Спустя 5 минут, 46 секунд (24.06.2011 - 23:09) midd написал(а):
а можно это все в 1 файл сделать?

исправленная форма
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<style
type="text/css">
<!--
.tabname {
font-family: Verdana, Geneva, sans-serif;
color:#900;
font-size:11px



}
-->

</style>
</head>

<body>
<form
method="POST" action="script.php">
<table
width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<th
class="tabname" scope="col">До обработки</th>
<th
class="tabname" scope="col">После обработки</th>
</tr>
<tr>
<td
width="50%" align="center"><input type="text" class="textbox" size="100" height="400" value="Здесь список до обработки" name="before"></td>
<td
width="50%" align="center"><input type="text" class="textbox" size="100" height="400" value="<?php echo $text2 ?>" name="after"></td>
</tr>
<tr>
<td
width="100%" align="center" colspan="2"><input type="submit" name="send" style="width:100px;" value="Обработать">
</td>
</tr>
</table>
</form>
</body>
</html>


Спустя 25 секунд (24.06.2011 - 23:09) XCross написал(а):
да

Спустя 3 минуты, 39 секунд (24.06.2011 - 23:13) Игорь_Vasinsky написал(а):
у тя регулярка хитрая, даж даты пропустит, может так паттерн попробовать
"/\[([\[0-9\]]+)\]/siu"

Тебе нужно принять данные в value, а написал на примере тернарного оператора (в журнале у меня встретишь)
    <td width="50%" align="center"><input type="text"  class="textbox"
size="100" height="400" value="Здесь список после обработки" name="after"
value="<?php echo isset($_GET['before'] ? $_GET['before'] : null);?>"></td>


файл с расширением php

и использовать полные теги <?php и ?>, короткие могут быть отключены

и чёт я не нашёл, что именно не работает

Спустя 3 минуты, 42 секунды (24.06.2011 - 23:16) midd написал(а):
блин ничего не понял, что написано))) вроде как с другой планеты я)) мрак) ща буду ковырять...

Спустя 1 минута, 18 секунд (24.06.2011 - 23:18) SoMeOnE написал(а):
midd
Может все же сначала прочтешь это
http://irbis-team.com/15/5/2

Легче разобрать потом будет, что к чему.

Спустя 5 минут, 22 секунды (24.06.2011 - 23:23) Игорь_Vasinsky написал(а):
Потом, у тя обработчик в одном файле, принять данные ты хошь в другом, смотри чё получается, - ты отправляешь данные формы в обработчик, потом хошь их принять снова в форме.

Вывод:

Либо сделать одним файлом (рекоменд)
Либо продублировать форму в обработчике


Спустя 3 минуты, 25 секунд (24.06.2011 - 23:27) midd написал(а):
буду пытаться сделать в 1 , статью читаю..

Спустя 8 минут, 4 секунды (24.06.2011 - 23:35) midd написал(а):
<?php
if (!empty($_POST['send'])) {
$text = $_POST['before']
}
>
<
form method="POST" action="">
<
table width="100%" border="1" cellspacing="0" cellpadding="0">
<
tr>
<
th class="tabname" scope="col">До обработки</th>
<
th class="tabname" scope="col">После обработки</th>
</
tr>
<
tr>
<
td width="50%" align="center"><input type="text" class="textbox" size="100" height="400" value="Здесь список до обработки" name="before"></td>
<
td width="50%" align="center"><input type="text" class="textbox"
size="100" height="400" value="Здесь список после обработки" name="after"
value="<?php echo isset($_GET['before'] ? $_GET['before'] : null);?>"></td>
</
tr>
<
tr>
<
td width="100%" align="center" colspan="2"><input type="submit" name="send" style="width:100px;" value="Обработать">
</
td>
</
tr>
</
table>
</
form>


Если я все правильно понял.. ща буду тестировать..

Спустя 6 минут, 6 секунд (24.06.2011 - 23:41) midd написал(а):
<?php
header ("Content-type: text/html; charset=cp1251");
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
<!--
.tabname {
font-family: Verdana, Geneva, sans-serif;
color:#900;
font-size:11px



}
-->
</style>
</head>

<body>'
;
if ($_POST['from'])
{
preg_match_all("/\[([0-9]+)\]/si", $_POST['from'], $result);
foreach ($result[1] as $num)
$results .= $num."\n";
}
echo '
<form action="" method="post">
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<th class="tabname" scope="col">До обработки</th>
<th class="tabname" scope="col">После обработки</th>
</tr>
<tr>
<td width="50%" align="center"><textarea style="width: 95%; height: 153px; background-color: lightgrey;" name="from">'
.$_POST['from'].'</textarea></td>
<td width="50%" align="center"><textarea style="width: 95%; height: 153px; background-color: lightgrey;" name="">'
.trim($results).'</textarea></td>
</tr>
<tr>
<td width="100%" align="center" colspan="2"><input type="submit" style="width:100px;" value="Обработать"></td>
</tr>
</table>
</form>
</body>
</html>'
;
?>


вот так решил задачу, какие комментарии?

Спустя 8 часов, 25 минут, 35 секунд (25.06.2011 - 08:06) SoMeOnE написал(а):
А тогда зачем submit ставишь?
Лучше так

<input type="submit" name="ok" style="width:100px;" value="Обработать">


if (!empty($_POST['ok']))
{
$text = !empty($_POST['from'])? $_POST['from']: '';

preg_match_all("/\[([0-9]+)\]/si", $text, $result);
foreach ($result[1] as $num)
$results .= $num."\n";
}


И лучше отделить html от php
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.