Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Brak pomysłu. Może ktoś pomoże?
Forum PHP.pl > Forum > PHP
stimoroll
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]
PMadej
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ć ...
stimoroll
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ć?
DeyV
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
stimoroll
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>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.