Posiadam formularz taki oto:
Trzy pola radio
<input TYPE=\"radio\" name=newbus value="14a|1">"; <input TYPE=\"radio\" name=newbus value="14b|2">"; <input TYPE=\"radio\" name=newbus value="28a|3">";
Posiadam rowiez plik txt. ktorego struktura moze wygladac nastepujaco
costam0||14a||14b-cancelled||28a-cancelled costm1||14a-cancelled||14b||28a costam3||14a-cancelled||14b||28a-cancelled
Zawsze jest 14a, 14b i 28a / lub tak samo plus -cancelled ae ne musi byc.
Teraz kazde pole radio posiada wartosc odpowiednio po rozzbiciu poprzez explode()
Pole pierwsze -- Index 0 (14a) index 1 (1)
Pole drugie -- Index 0 (14b) index 1 (2)
Pole trzecie -- Index 0 (28a) index 1 (3)
1,2,3 to indexy w pliku pomiedzy separatorem || a 14a, 14b, 28a to dane ktore maja zastapic dane w konkretnym indeksie
Teraz chce zaznaczajac pole przykladowo nr. 1 i wyborze linii nr 2 chce zamienic 14a-cancelled na to co posylam polem radio po rozbiciu
14a to to na co ma sie zamienic jesli jest 14a-cancelled a liczba 1 po separatorze | okresla w ktorym indexsie jest 14a. Tak samo analogicznie z 14b i 28a.
Mam przyklad ktory zamienia mi tak jak chce lecz dodaje jeszcze na koncu kolejny index - identycny ktory zwraca wyslane pole radio.
Proslbm odniesc sie tylko do tego przykladu nie pisac nowych , swoich.
$cousunac = $indexy[0]; // co usunac 14a, 14b, 28a $ktoralinia = $_POST['seats1']; // kora linia $ktoryindex = $indexy[1]; // który index usunac if ($ex[$ktoryindex] == $cousunac.'-cancelled') { $ex[$ktoryindex]=$cousunac; // przypisanie nowych danych } //$f1[$ktoralinia] = implode("||", $ex) . "\r\n"; // fwrite($f,str_replace("","\r\n",join('',$f1)));
I teraz jesli mialem w linii tak:
cos||14a-cancelled||14b-cancelled
i wybieram do zamiany 14b-cancelled
wynikiem jest
Limerick & Cliffs by boat||14a-cancelled||14b||14b|2
Czyli na koncu dodaje mi kolejny index 14b|2 pochodzacy z pola radio
Powino byc tak:
cos||14a-cancelled||14b
Co robie nie tak ?