Avatar billede rasmus-madsen Nybegynder
18. januar 2004 - 20:11 Der er 9 kommentarer og
1 løsning

Indsæt værdi i stregen.

Hejza. Jeg har denne streng:
$Mame =  "<select name=\"select\">
    <option value=\"1\">et</option>
    <option value=\"2\">to</option>
    <option value=\"3\">tre</option>
    <option value=\"4\">fire</option>
    <option value=\"5\">fem</option>
  </select>";

Nu skal jeg bruge en "søge" kode som finder 4 tallet og indsætter checked efter det afsluttende " ..

Kan nogen hjælpe med det?

På forhånd tak.

//Madsen
Avatar billede jensgram Nybegynder
18. januar 2004 - 20:19 #1
preg_replace('/\"4\">/', '\"4\" selected=\"selected\">', $Mama);
Avatar billede jensgram Nybegynder
18. januar 2004 - 20:21 #2
Hov, det skulle have været $Mame til sidst...
Avatar billede Slettet bruger
18. januar 2004 - 20:39 #3
Nu er der jo ikke længere \ i strengen. Her er en, der er lettere at bruge, når værdien skiftes.

$valgt=4;

$nystreng=preg_replace('/"('. $valgt .')">/', '"\\1" selected="selected">', $Mame);
Avatar billede rasmus-madsen Nybegynder
18. januar 2004 - 21:21 #4
sandbox --> den forstår jeg ikke helt .. Vil du ikke omformeler dig til "baby" sprog ?

//Madsen
Avatar billede Slettet bruger
18. januar 2004 - 21:35 #5
mr_noname have lavet et forslag, der ikke var helt korrekt. Jeg kom med en rettelse og en udvidelse.

De \-er du har skrevet er slet ikke i $Mame mere. Derfor skal man ikke se efter dem, når man vil lave søg/erstat på strengen.

$valgt=4;

$nystreng=preg_replace('/"('. $valgt .')">/', '"\\1" selected="selected">', $Mame);

Når denne linie køres tager PHP først og samler '/"('. $valgt .')">/' til en streng. Den ser således ud: '/"(4)">/'

Denne streng betyder et ", et 4-tal (og husk lige 4-tallet), et ", en >.

Derefter erstatter den hele blokken, der matchede med den anden streng. I den betyder \\1 at her skal indsættes det, der stod i parantesen i søge-strengen. Derfor behøver jeg ikke indsætte $valgt i den også.

Hvis du altid skal have nummer 4 valgt, kan du sagtens bruge en kortere udgave:

$nystreng=preg_replace('/"4">/', '"4" selected="selected">', $Mame);
Avatar billede rasmus-madsen Nybegynder
18. januar 2004 - 21:55 #6
jeg undskylder virkelig meget men forstår det ikke. Kan du ikke komme med et exs..
Avatar billede rasmus-madsen Nybegynder
18. januar 2004 - 22:04 #7
Nu forsåd jeg det :d .. Fuck det smart !

Svar lige og du løber med pointsne :d
Avatar billede Slettet bruger
18. januar 2004 - 22:50 #8
OK, men bare spørg mere, hvis du er i tvivl om den.
Avatar billede rasmus-madsen Nybegynder
19. januar 2004 - 15:20 #9
Hejza sandbox .. Har et eks hvod den sidste af dem ikke virker ! :( .. Det første gør:
closedir($handle);
$Rolle .= "</select>";
$count++;
$res2 = mysql_query("SELECT * FROM menu order by plads asc");
while($row = mysql_fetch_array($res2)) {
$valgt = $row['ikon'];
$valg2 = $row['plads'];
echo $valg2;
$Ind=preg_replace('/"('. $valgt .')">/', '"\\1" selected="selected">', $Rolle);
$i="1";
$Plac = "<select name=\"select\">";
while(($i < $count)) {
$Plac .= "<option value=\"" .$count ."\">" .$i ."</option>";
$i++;
}
$Plac .= "</select>";

$Plac2=preg_replace('/"('. $valg2 .')">/', '"\\1" selected="selected">', $Plac);
$strTekst .= $Ind ." <input name=\"Text\" type=\"text\" value=\"" .$row['text'] ."\">" .$Plac2 ."<br>";
}
(kun udsnit)

Den sidste virker ikke.  ved du hvorfor?
Avatar billede rasmus-madsen Nybegynder
19. januar 2004 - 16:36 #10
fandt den selv :D ..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester