[PHP]<select> i wczytywanie danych z formularza


(felixik) #1

Witam, pytanie a raczej problem, który mam jest chyba raczej czysto teoretyczny, bo nie wydaje mi się by było to możliwe do osiągnięcia a może jednak ... W każdym razie chodzi o to, że mam taki oto switch to jest tylko fragment. W sumie mam 9 takich case'ów dla każdego pliku oddzielnie. Pliki wybierane są za pomocą z metodą onchange (nic nie stoi na przeszkodzie żeby zrobić z tego zwykły

z submitem. Dwa pytania

  1. Czy jest w ogóle możliwe a jeśli jakimś cudem tak, to jak się do tego zabrać, aby zrobić jeden kod zamiast 9 i tylko wczytywać nazwy plików z selecta do poniższego formularza edycyjnego?

  2. Czy jest możliwe aby zamiast indeksów tablic automatycznie wczytywały się nazwy plików z selecta w miejsce indeksów tablic?

Z góry dziękuję za wszelkie wyjaśnienia

switch($_GET['strona'])


{


      case 'o_nas':


      echo'';

      $a = file_get_contents("$dir$files[2]");

      echo $a;

      echo '
';


    echo '';

    $editor_data = stripslashes($_POST['content']);

    $editor_data = str_replace($tab1, $tab2, $editor_data);

    $editor_data = html_entity_decode($editor_data);

    $b = file_put_contents("$dir$files[2]",$editor_data);


    echo'';

  break;



  case 'dzialalnosc':


  echo'

'; $a = file_get_contents("$dir$files[0]"); echo $a; echo ' '; echo ' '; $editor_data = stripslashes($_POST['content']); $editor_data = str_replace($tab1, $tab2, $editor_data); $editor_data = html_entity_decode($editor_data); $b = file_put_contents("$dir$files[0]",$editor_data); echo''; break; }


(Drobok) #2

Słyszał o funkcjach ? O argumentach funkcji ? :slight_smile:

function nazwa($argument){

//turaj twój kod, zamieniasz ten files[2] na argument (mógłbyś sam index ale to znów utrudni kolejną zmianę)

}

Nie pokazałeś tego selecta. Wystarczy użyć option value to co masz w option


(felixik) #3

Oto select. Zawiera on nazwy plików bez rozszerzeń, które są w konkretnej lokalizacji. Pokażesz mi przykład takiej funkcji, która dokonuje takiej zamiany?

Poza tym właśnie chciałbym tą funkcją zamienić $files[0]-[8] przy przeładowaniu strony na wartość z option.

echo '
Wybierz podstronę';


for($i = 0, $c = count($files); $i < $c; $i++) {

    $names[] = pathinfo($files[$i], PATHINFO_FILENAME);


echo "";

echo $names[$i];

echo '';

}

echo '';

(Drobok) #4

A próbowałeś tak ? Kodu jest mało, ale zakładając, że dir to ścieżka w której aktualnie jest plik. Bierzesz nazwę pliku z files (którym również jest ścieżka (oc tym razem do pliku) ?) Moim zdaniem wtedy wystarczyło by podmienić tego case właśnie na stronę z get + rozszerzenie. Jednak zmienną musisz jakoś sprawdzać, bowiem user może tym twoim edytorem wszystko zmienić, nawet z sobą samym (o ile rozszerzenie będziesz miał php).

echo'';  $a = file_get_contents("$dir$_GET['strona']\.html");  echo $a;  echo ';  echo '';  $editor_data = stripslashes($_POST['content']);  $editor_data = str_replace($tab1, $tab2, $editor_data);  $editor_data = html_entity_decode($editor_data);  $b = file_put_contents("$dir$_GET['strona']\.html",$editor_data);''; [/code]

(felixik) #5