Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[php/xml]Php variabele in xml string.

Pagina: 1
Acties:

  • hydrargyrum
  • Registratie: December 2012
  • Laatst online: 11-11 12:04
Hallo tweakers,
Ik heb voor een project een xml-bestand met als een van de velden een snippet code, namelijk
Mogelijkheden:
code:
1
2
3
<br>
$option1<input type="radio" name="answer" value="option1"><br>
$option2<input type="radio" name="answer" value="option2"><br>

Om dit xml-bestand te parsen gebruik ik simplexml, mocht dat belangrijk zijn.

Nu wil ik graag dat de opties de waarde van de php-variabele aannemen met dezelfde naam, dus dat je iets krijgt als:
code:
1
2
$option1="kaas";
$option1<input type="radio" name="answer" value="option1">

en dit geeft dan een radiobutton met kaas ervoor
Wat is de beste manier om dit te doen?

[ Voor 3% gewijzigd door hydrargyrum op 11-07-2014 23:12 ]


  • Cor453
  • Registratie: Mei 2011
  • Laatst online: 30-10 14:42
Ik snap niet helemaal wat je bedoelt. Vooral de manier waarop de XML doorgeschreven wordt achter de variabele-naam snap ik niet. Je bedoelt zeker niet zoiets als:
code:
1
2
$option1 = "kaas";
$option1CheckBox = '<input type="radio" name="answer" value="' . $option1 . '" />';


Kortom: verduidelijk je vraag even als het kan ;)

[ Voor 3% gewijzigd door Cor453 op 11-07-2014 23:42 ]


  • Xatom
  • Registratie: Augustus 2011
  • Laatst online: 04:21

Xatom

Ik snap ook niet helemaal wat je bedoelt, maar om een tekst voor een radiobutton te zetten in HTML kan je het beste een label gebruiken:

HTML:
1
<input type="radio" name="kaas" value="kaas" id="kaas"><label for="kaas">kaas</label>


Hierdoor kan je ook op de tekst klikken om een radiobutton te selecteren. Name wordt de naam van de variable in PHP, value wordt de waarde van de variable kaas en id is om het label met je radiobutton te verbinden.

De volgende code laat dus kaas zien:
PHP:
1
echo $_POST['kaas'];


Om de HTML code met PHP te maken kan je dit doen:
PHP:
1
2
$naam = "kaas";
echo "<input type='radio' name='{$naam}' value='waarde' id='{$naam}'><label for='{$naam}'>{$naam}</label>"

[ Voor 24% gewijzigd door Xatom op 11-07-2014 23:59 ]


  • hydrargyrum
  • Registratie: December 2012
  • Laatst online: 11-11 12:04
Oke, nu zie ik inderdaad dat het een beetje rommelig doorkwam. Mijn xml ziet er voor de rest zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="UTF-8"?>
<questions>
    <question type="1">
        <name>GradeSlider</name>
        <snippet>
        </snippet>
    </question>
    <question type="2">
        <name>MultipleChoice</name>
        <snippet></snippet>
    </question>
</questions>

Tussen de <snippet> tags komt dan bijvoorbeeld
<br>
$option1<input type="radio" name="answer" value="option1"><br>
$option2<input type="radio" name="answer" value="option2"><br>
te staan, maar dan gëncode(dat was ik vergeten te zeggen), dus als
<br>
$option1<input type="radio" name="answer" value="option1"><br>
$option2<input type="radio" name="answer" value="option2"><br>
Dan haalt een php programma die code op uit de xml <snippet tag>, en ik wil afhankelijk van de situatie de labels aan kunnen passen door een php variabele(die uit een sql-database komt, maar dat even terzijde). Als ik dan de data tussen die <snippet> tags echo werkt de input gewoon, maar de variabele, $optie1 word gewoon weergegeven als $optie1, en niet als de waarde die ik het gegeven heb

  • HyperioN
  • Registratie: April 2003
  • Laatst online: 31-10 21:55
http://nl1.php.net/eval

Maar pas daar wel mee op...!

Edit:
Ik denk dat het verstandiger is om een search-and-replace functie te maken.

Bijv, heel simpel:
PHP:
1
2
3
4
5
6
$xmlstr = '<br>{optie1}<input type="radio" name="answer" value="option1"><br>';

$optie1 = "Hallo";
$parsed = str_replace("{optie1}",$optie1,$xmlstr);

echo $parsed;


Uitgebreidere, wat complexere en dynamischere replaces zou je kunnen doen met http://php.net/manual/en/function.preg-replace.php .

[ Voor 82% gewijzigd door HyperioN op 12-07-2014 18:06 ]


  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 00:07

  • Barryvdh
  • Registratie: Juni 2003
  • Laatst online: 21-11 14:12
Of de symfony expression language: http://symfony.com/doc/cu...anguage/introduction.html

  • Cartman!
  • Registratie: April 2000
  • Niet online
Ik vrees dat je nu voor jezelf iets aan het maken bent wat totaal niet te onderhouden is en bol staat van lekken. Wat wil je in het totale geheel proberen te bereiken?
Pagina: 1