Я извлекаю данные из XML-документа, используя циклы DOMDocument
и foreach
.Для одной из точек данных, которые мне нужны, style
, я создал ассоциативный массив с именем стиля и идентификатором стиля .Затем я экспортировал имя стиля в выпадающий список <select>
.Я пытаюсь выяснить, как создать переменную с идентификатором стиля , на основе которой имя стиля было выбрано в раскрывающемся списке.Вот что у меня есть:
Два стиля - это 5dr Avant Wgn Man
и 5dr Avant Wgn Auto
.Они экспортируются в раскрывающийся список.Их соответствующие идентификаторы стиля: 292015
и 292016
.Таким образом, ассоциативный массив будет выглядеть примерно так: 5dr Avant Wgn Man => 292015
и 5dr Avant Wgn Auto => 292016
.
То, чего я хочу достичь, - это когда 5dr Avant Wgn Man
выбрано из выпадающего списка, 292015
установлено равным $variable
.Таким образом, echo $variable;
будет отображать 292015
.И наоборот для другого стиля.
Вот мой PHP:
<html>
<body>
<?php
$xml = file_get_contents('data.xml');
$dom = new DOMDocument();
$dom->loadXML($xml);
?>
<select>
<option selected="selected">Choose style</option>
<?php
foreach ( $dom->getElementsByTagName('style') as $styletwo ) {
$styleid = $styletwo->getAttribute("name");
$styleData [$styleid]= $styletwo->getAttribute("id");;
}
foreach ($styleData as $k=>$v){
?>
<option><?php echo $k;?> </option>
<?php
}
?>
</select>
</body>
</html>
Вот XML-документ, из которого я извлекаю:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<VehicleDescription country="US" language="en" modelYear="2008" bestMakeName="Audi" bestModelName="S4" bestStyleName="5dr Avant Wgn" xmlns="urn:description7b.services.chrome.com">
<responseStatus responseCode="Successful" description="Successful"/>
<style id="292015" modelYear="2008" name="5dr Avant Wgn Man" nameWoTrim="5dr Avant Wgn Man" mfrModelCode="8ED549" fleetOnly="false" modelFleet="false" passDoors="4" altBodyType="Station Wagon" drivetrain="All Wheel Drive">
<division id="4">Audi</division>
<subdivision id="5020">Audi</subdivision>
<model id="17308">S4</model>
<basePrice unknown="false" invoice="46137.0" msrp="49610.0" destination="775.0"/>
<bodyType primary="true" id="7">Station Wagon</bodyType>
<marketClass id="53">Small Wagon</marketClass>
<acode>USB80AUC085A0</acode>
</style>
<style id="292016" modelYear="2008" name="5dr Avant Wgn Auto" nameWoTrim="5dr Avant Wgn Auto" mfrModelCode="8ED54L" fleetOnly="false" modelFleet="false" passDoors="4" altBodyType="Station Wagon" drivetrain="All Wheel Drive">
<division id="4">Audi</division>
<subdivision id="5020">Audi</subdivision>
<model id="17308">S4</model>
<basePrice unknown="false" invoice="47162.0" msrp="50710.0" destination="775.0"/>
<bodyType primary="true" id="7">Station Wagon</bodyType>
<marketClass id="53">Small Wagon</marketClass>
<acode>USB80AUC085A1</acode>
</style>
</VehicleDescription>
</S:Body>
</S:Envelope>
Я думаю, что-то вроде if statement
с $k
и $v
может сработать, но я не смог понять это.Любая помощь будет принята с благодарностью.