Witam. Pracuję na plikach XML w php i mam problem ze wszystkimi operacjami. Na przykładzie jednego z plików wyjaśnię o co mi chodzi. Treść pliku:
<html>
<head>
<body>
<?php
$xml = simplexml_load_file('autokar.xml');
$xml2 = simplexml_load_file('trasa.xml');
?>
<form action="index.php?id=usun_autokar" method="post">
<span class='wciecie2'>Trasa (z tej trasy zostanie usunięty autobus): </span>
<select name="wybor" class='sel_size' class="przes1">
<?php
for ($i=0;$i<count($xml->trasa);$i++)
echo "<option value='".$xml2->trasa[$i]['ID']."'>".$xml2->trasa[$i]->kierunek[0]."</option>"; ?>
</select><br/>
<span class='wciecie2'>Numer autobusu do usunięcia: </span>
<select name="wybor2" class='sel_size' class="przes2">
<?php
//for ($j=0;$j<3;$j++)
echo "<option value='0'>0</option>"; echo "<option value='1'>1</option>"; echo "<option value='2'>2</option>"; echo "<option value='3'>3</option>"; ?>
</select><br />
<input type="hidden" value="1" name="spr">
<input type="submit" value="Usuń">
</form>
<?php
if(1)
{
if($wybor==0)
{
switch($wybor2)
{
case 0;
unset($xml->trasa[0
]->autokar[0
]); break;
case 1;
unset($xml->trasa[0
]->autokar[1
]); break;
case 2;
unset($xml->trasa[0
]->autokar[2
]); break;
}
}
if($wybor==1)
{
switch($wybor2)
{
case 0;
unset($xml->trasa[1
]->autokar[0
]); break;
case 1;
unset($xml->trasa[1
]->autokar[1
]); break;
case 2;
unset($xml->trasa[1
]->autokar[2
]); break;
}
}
if($wybor==2)
{
switch($wybor2)
{
case 0;
unset($xml->trasa[2
]->autokar[0
]); break;
case 1;
unset($xml->trasa[2
]->autokar[1
]); break;
case 2;
unset($xml->trasa[2
]->autokar[2
]); break;
}
}
if($wybor==3)
{
switch($wybor2)
{
case 0;
unset($xml->trasa[3
]->autokar[0
]); break;
case 1;
unset($xml->trasa[3
]->autokar[1
]); break;
case 2;
unset($xml->trasa[3
]->autokar[2
]); break;
}
}
if($wybor==4)
{
switch($wybor2)
{
case 0;
unset($xml->trasa[4
]->autokar[0
]); break;
case 1;
unset($xml->trasa[4
]->autokar[1
]); break;
case 2;
unset($xml->trasa[4
]->autokar[2
]); break;
}
}
if($wybor==5)
{
switch($wybor2)
{
case 0;
unset($xml->trasa[5
]->autokar[0
]); break;
case 1;
unset($xml->trasa[5
]->autokar[1
]); break;
case 2;
unset($xml->trasa[5
]->autokar[2
]); break;
}
}
if($wybor==6)
{
switch($wybor2)
{
case 0;
unset($xml->trasa[6
]->autokar[0
]); break;
case 1;
unset($xml->trasa[6
]->autokar[1
]); break;
case 2;
unset($xml->trasa[6
]->autokar[2
]); break;
}
}
if($wybor==7)
{
switch($wybor2)
{
case 0;
unset($xml->trasa[7
]->autokar[0
]); break;
case 1;
unset($xml->trasa[7
]->autokar[1
]); break;
case 2;
unset($xml->trasa[7
]->autokar[2
]); break;
}
}
if($wybor==8)
{
switch($wybor2)
{
case 0;
unset($xml->trasa[8
]->autokar[0
]); break;
case 1;
unset($xml->trasa[8
]->autokar[1
]); break;
case 2;
unset($xml->trasa[8
]->autokar[2
]); break;
}
}
if($wybor==9)
{
switch($wybor2)
{
case 0;
unset($xml->trasa[9
]->autokar[0
]); break;
case 1;
unset($xml->trasa[9
]->autokar[1
]); break;
case 2;
unset($xml->trasa[9
]->autokar[2
]); break;
}
}
if($wybor==10)
{
switch($wybor2)
{
case 0;
unset($xml->trasa[10
]->autokar[0
]); break;
case 1;
unset($xml->trasa[10
]->autokar[1
]); break;
case 2;
unset($xml->trasa[10
]->autokar[2
]); break;
}
}
$xml->asXML('autokar.xml');
echo 'Usunieto autokar z wybranej Trasy.';
}
echo "<br/><span class='napis_g'> Lista dostępnych autokarow na danej trasie: </span><br/>"; for ($i=0;$i<count($xml->trasa);$i++)
{
echo "<span class='napis_g'>".$xml2->trasa[$i]['ID'].". ".$xml2->trasa[$i]->kierunek[0]."</span><br/>"; for ($j=0;$j<count($xml->trasa[$i]->autokar);$j++)
echo "<span class='wciecie2'>".$xml->trasa[$i]->autokar[$j]['ID'].". ".$xml->trasa[$i]->autokar[$j]->nazwa."</span><br/>"; }
?>
Problem polega na tym, że program nie usuwa mi tego co bym chciał. Objaw taki jak by nie reagował na wybraną w formularzu opcję i usuwa pierwszy autokar z brzegu. To samo zachowanie występuje w przypadku reszty plików. Co robię źle. Co jest nie tak ? Proszę o pomoc.
Ten post edytował blackball 2.09.2009, 10:57:55