Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odczyt pliku po naciśnięciu buttonu
Forum PHP.pl > Forum > PHP
Papub
Jak zrobić to co zamieściłem w temacie. Bo przecież kod <input type button .... to jest w htmlu.
Odczytać z pliku dane umię tylko się głowie jak zrobić żeby po naciśnięciu buttona dane wyskakiwały NA TEJ SAMAEJ STRONIE bez przeładowania.
Cienki1980
Umieść dane w ukrytym div'ie i po klknięciu na button pokaż div'a ( czyli zmień jego display=none na display=inline ).
Papub
No zrobiłem tego diva
echo '<div id="ukryty" style="display: none">';

póżniej dałem to:

echo '<input type=button value=Wczytaj onClick="document.getElementById('ukryty').style.display='inline';">';

i otrzymałem to:
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in mojastrona.php on line 65
Cienki1980
Mimo, że nie podświetliłeś składni ( BBCode ) to strzelam, że masz problem z apostrofami i cudzysłowami.
Powinno coś takiego być:

  1. <?php
  2. echo "<div id="ukryty" style="display: none">tresc ukrytego diva</div>";
  3.  
  4.  
  5.  
  6. echo "<input type="button" value="Wczytaj" onClick="document.getElementById('ukryty').style.display='inline';">";
  7. ?>
Papub
Cały problem polega na tym że chce zrobić aby zawartosć pliku dane.txt załadowała się <textarea>; tresc</textarea>;

i w miejsce tresc dałem skrypt php
  1. <?php
  2. $fp = fopen("dane.txt", "r"); 
  3. $tekst = fread($fp, 1000);
  4.  echo($tekst);
  5.  ?>


tylko nie moge tu dać elementu z htmla z tym niewidocznym divem bo traktuje to jako zwykły tekst który wyświetlany jest w textarea a nie jakieś komendy które mają coś na celu
Cienki1980
Ja chyba czegoś nie rozumiem ... chcesz wyświetlić w polu textarea zawartość pliku textowego odczytywanego przez php tak questionmark.gif

Jeżeli tak to w czym masz problem questionmark.gif Można to zrobić w sposób jak pokazałem, bez większych problemów...

No chyba że chodzi o coś innego.

PS. Zacznij w końcu korzystać z BBCode.
Papub
Patrz jak robie tak
  1. <?php
  2. echo '<textarea>';tresc
  3. echo'</textarea>;
  4. ?>


w tym momencie wyświetli słowo tresc w tym polu

a jak zrobie tak
  1. <?php
  2. echo '<textarea>';
  3. echo '<div id="ukryty" style="display: none">';
  4. $fp = fopen("dane.txt", "r"); 
  5. $tekst = fread($fp, 1000);
  6. echo($tekst);
  7. echo '<textarea>';
  8. ?>



to teog diva czyta mi jak zwykły tekst. Nie czeka az wcisne wczytaj żeby załadowało te dane z zpliku tylko od razu ładuje i to jeszcze oprócz wczytango tekstu pojawia się przed tym
  1. <?php
  2. <div id="ukryty" style="display: none">wczytany tekst</div>
  3. ?>
Cienki1980
No takie założenie było ( przynajmniej z mojej strony ), że DIV jest już wypełniony treścią, tylko jest ukryty, w momencie jak klikasz na button to DIV się pokazuje.

Jeżeli chcesz, żeby tekst nie był wcześniej wogole widoczny, musisz zrobic to przez przeładowanie strony, lub korzystając z AJAX'a. W momencie przeładowania strony, odczytujesz plik i jego zawartość wyświetlasz w textarea.
nospor
@Cienki1980 zalozenie miales byc moze sluszne, ale zobacz jak on zrobil: on wklada diva do textarea, a nie na odwrot winksmiley.jpg (pomijam juz totalna sieczke w znacznikach zamykajacych oraz ich brak)

ps: pozatym skoro mamy juz textarea, to mozna olac diva i operacja pokazywanie/ukrywanie robic bezposrednio na textarea

ps2: sorki za wciecie, kontynuujcie smile.gif
Cienki1980
@nospor : racja biggrin.gif ja spojrzałem na pierwszy kawałek kodu bez znaczników i nie przeglądałem dalej .. myślałem że aż tak źle nie bedzie.

@Papub : mam wrażenie jednak, że chodzi Ci o coś innego niż tylko ukrycie textarea .. to textarea ma być cały czas widoczne, ale dopiero po kliknięciu ma się wypełnić treścią.

Możesz to zrobić na 3 sposoby:
- przeładowanie strony
- AJAX
- lub JS przypisując zawartość pliku do zmiennej JS, po kliknięciu buttona przypisać wartość tej zmiennej do wartości textarea.
Papub
Dokładnie o to mi chodzi mam pole textarea i trzy buttony zapisz, reset i wczytaj. Jak coś napisze w polu i zrobie zapisz zapisuje mi do pliku z atybutem W czyli zawsze jak coś napisze to poprzednie skasuje. A plik wczytaj ma ładować treść z pliku do pola. Nawet myślałem żeby zrobić nastęne pole textarea na następnej stronie i po naciśnięciu buttonu wczytaj tylko by sie poleciało do tej nastęnej strony, tylko u mnie ten 1 textarea pojawia się gdy wpisze dobrze login i hasło. Gorzej jest jak ktoś w przęglądarce wpisze odrazu link do do tego 2 textarea wpisze sobie coś wyśle mi do pliku. Przecież na tej 2 stronie znowu nie będe robił 2 logowania. Bym musiał mieć skrypcik który by sprawdzał czy na poprzedniej stronie był zalogowany jak nie to wypad
Cienki1980
Logowanie i sprawdzanie czy użytkownik jest zalogowany to osobna kwestia nie raz nie dwa poruszana na forum.

Skoro masz takie założenia i nie chcesz robić w AJAXie .. to albo przeładowanie strony, albo za pomocą JS.

Jeżeli zawartość pliku jest duża to lepiej zrobić to poprzez przeładowanie strony.

Podpinasz pod buttona akcje zatwierdzającą formę jednocześnie ustawiając wartość jakiegoś pola hidden.

W php sprawdzasz wartość tego pola, jeżeli jest odpowiednie to otwierasz plik a zawartość wyświetlasz w textarea.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.