Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Brak pomysłu. Może ktoś pomoże?
stimoroll
post 1.10.2003, 15:21:50
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 16.06.2003

Ostrzeżenie: (0%)
-----


Problem wygląda tak:
- chciałbym by w poniższym kodzie zamiast $i pojawiały się kolejne cyfry - ale jakoś nie mam pomysłu jak to zrobić by działało szybko i sprawnie:
Mam taki kod narazie:
[php:1:261a14ab4c]<?php
if(preg_match_all("#[ankieta](.+)[/ankieta]#s",$in,$matches))
{
$trans_ankieta_array=array(
"#[ankieta](.+)[/ankieta]#s"=>"<form action="index.php?d=forumankieta" method="post">1
<input type="submit" vaule="Wyœlij"></form>",
"!- (.*)!U"=>"<input type="radio" name="vote_id" value="".$i."" />1 "
);
$in2 = ereg_replace_multi($trans_ankieta_array, $matches[0][0]);
$in=preg_replace("#[ankieta](.+)[/ankieta]#i",">1</form>",$in2);
#echo "<h1> $in2 </h1>";
}
?>[/php:1:261a14ab4c]


--------------------
Zakopane
Go to the top of the page
+Quote Post
PMadej
post 1.10.2003, 18:14:38
Post #2


Vice-Administrator serwera


Grupa: Przyjaciele php.pl
Postów: 395
Pomógł: 0
Dołączył: 7.08.2003
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Zamiast tego:

[php:1:053e08722a]<?php
$trans_ankieta_array=array(
"#[ankieta](.+)[/ankieta]#s"=>"<form
action="index.php?d=forumankieta" method="post">1
<input type="submit" vaule="Wyœlij"></form>",
"!- (.*)!U"=>"<input type="radio" name="vote_id"
value="".$i."" />1 "
?>[/php:1:053e08722a]

napisałbym coś takiego:

[php:1:053e08722a]<?php
$trans_ankieta_array=array(
"#[ankieta](.+)[/ankieta]#s"=>"<form
action="index.php?d=forumankieta" method="post">1
<input type="submit" vaule="Wyœlij"></form>");

//tu pętla dla $i dążącego do 30:
while ($i<30)
{
$trans_ankieta_array=array("!- (.*)!U"=>"<input type="radio" name="vote_id"
value="".$i."" />1 ");
$i++;
}

?>[/php:1:053e08722a]

kodu nie testowałem ale wydaje mi się, że w ten sposób musisz to rozwiązać ...


--------------------
Go to the top of the page
+Quote Post
stimoroll
post 1.10.2003, 20:12:00
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 16.06.2003

Ostrzeżenie: (0%)
-----


Dzięki. Ładne i czytelne - ale chodziło mi o takie działanie jak poniżej:
[php:1:6afa43ddff]<?php
if(preg_match_all("#[ankieta](.+)[/ankieta]#s",$in,$matchess))
{
$in2=preg_replace("#[ankieta](.+)[/ankieta]#s",
"<form action="index.php?d=forumankieta" method="post">1
<input type="submit" value="Wyœlij"></form>",
$matchess[0][0]);
$i=1;
preg_match_all("!- (.*)!i",$in2,$matches);
foreach($matches[0] as $inn)
{
$in2=ereg_replace($inn,ereg_replace("- ","<input type="radio" name="vote_id" value="".$i."" >",$inn),$in2);
$i++;
}
$in=ereg_replace("[ankieta](.*)[/ankieta]",$in2,$in);
}
?>[/php:1:6afa43ddff]
Niby funkcja ta jest porpawna - ale nie dziąła najlepiej
Może da się to jakoś zoptymalizować?


--------------------
Zakopane
Go to the top of the page
+Quote Post
DeyV
post 2.10.2003, 00:06:24
Post #4





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




A mógłbyś dokładnie przedstawić, co chcesz ociagnąć? To znaczy jak ma wygladać html przed i po operacji?
Bo choć wydaje mi się, że rozumiem, to jednak nie jestem pewien smile.gif


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
stimoroll
post 2.10.2003, 07:12:18
Post #5





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 16.06.2003

Ostrzeżenie: (0%)
-----


tekst przed operacją
[ankieta] to jest ankieta
- wybór 1
- wybór 2
- wybór 3
...
- wybór n
[/ankieta]

tekst po operacji:
Kod
<form action="form.php" method="post">

<input type="radio" value="1">

<input type="radio" value="2">

<input type="radio" value="3">

....

<input type="radio" value="n">

<input type="submit" value="wyślij">

</form>


--------------------
Zakopane
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.06.2025 - 06:56