Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Przejście do dodanego komentarza
Forum PHP.pl > Forum > Przedszkole
astanas
Mam pytanie jak uzyskać taką funkcjonalność jak np na tej stronie, czyli po dodaniu odpowiedzi i przeładowaniu strony automatycznie jesteśmy przenoszeni do dodanego postu, czyli np na koniec?

Drugie pytanie, jak po wysłaniu formularza wyświetlić wiadomość w wybranym miejscu na stronie a nie tu gdzie znajduje się formularz?
lnn
dodajesz bookmarka
  1. <a name="nazwa"></a>
  2. <!-- pozniej wywolujesz -->
  3. <a href="#nazwa" >moja zakladka</a>

co do drugiego pyt to
  1. // robisz instrukcje warunkowa if np.
  2. if () {
  3. // wartosc jesli prawda
  4. $komunikat = "ok"; } else {
  5. // jesli false
  6. $komunikat2 = "zle"; }
  7.  
  8. //i pozniej na stronie wywolujesz tylko zmienna
  9.  
  10. echo $komunikat.$komunikat2;

pamietaj ze skrypt mu sie wykonywac przed zmienna ktora chcesz wyswietlic
Kamil Pietrzak
tam gdzie wywalisz <? echo $_POST['tresc'];?> tam bedzie to co odebrales
mozna to zapisac krocej <?=$_POST['tresc'];?>
astanas
Cytat
dodajesz bookmarka
  1. <a name="nazwa"></a>
  2. <!-- pozniej wywolujesz -->
  3. <a href="#nazwa" >moja zakladka</a>

A możesz to bardziej łopatologicznie wyjażnić bo jakoś nie mogę złapać?



Cytat
pamietaj ze skrypt mu sie wykonywac przed zmienna ktora chcesz wyswietlic

Rzeczywiście jest ok, ale chciałbym wyświetlić komunikat, który znajdzie się wyżej skrypt, jak to ominąć?
lnn
moze np zapisac w sesji komunikat albo poprzez POST (tego 2 nie jestem pewien ale 1 powinno zadzialac tongue.gif)
przykladowo:
  1. if (isset($_POST['wyslij'])) {
  2. $_SESSION['komunikat'] = "komunikat" }
  3.  
  4. //i potem sobie wywolujesz go tylko tam wyzej
  5. echo $_SESSION['komunikat'] ;

tylko pamietaj ze to zostanie zapamietane az do wylaczenia przegladarki chyba ze ustawisz jakies ograniczenie czasowe na wyswietlanie tego

Cytat(astanas @ 4.02.2010, 19:04:05 ) *
A możesz to bardziej łopatologicznie wyjażnić bo jakoś nie mogę złapać?

no nie wiem co w tym nie zrozumialego, mozesz byle co na stronie oznaczyc takim bookmarkiem i przejsc do tego dolaczajac do adresu strony np.: strona.html#zakladka

chociazby sproboj przejsc do mojego postu tez sa oznaczane zakladkami: http://forum.php.pl/index.php?showtopic=14...mp;#entry709507

zjedzie ci do momentu gdzie jest zakladka strona
astanas
Nic nie mogę wymyśleć, może mi ktoś z tym pomóc?
Mam formularz:
  1. ...
  2. <form action='' method='post'>
  3. <h3>Dodaj komentarz<br />
  4. <textarea id=\"box\" name='content' cols='130' rows='5'></textarea><br />
  5. <input type='submit' value=' Wyślij ' />
  6. </form></div>";
  7. if(isset($_POST['content'])){
  8. $content = mysql_real_escape_string($_POST['content']);
  9. $date = date("Y-m-d H:i:s");
  10. if($db->query("INSERT INTO `comments` VALUES('','$user_name','$content','$id','$date')")){
  11. TUTAJ WIADOMOŚĆ JEŚLI WYSŁANY
  12. }
  13. }";
  14. }
  15. ....

Jak teraz zrobić aby przekierowało odrazu na link z dodanym #komentarz

Czyli np strona z której ktoś wysyła komentarz ma adres:
http://mojastrona.pl/costam.php

Jak wyżej kolega wspomniał, dodam bookmark <a name="komantarz"></a> i chcę aby po przeładowaniu strony link wyglądał tak http://mojastrona.pl/costam.php#komentarz żeby użytkownik został przeniesiony na dół strony do komentarza
Kamil Pietrzak
przekierowanie na wygenerowany adres
lnn
zrob przekierowanie po wyslaniu i wstaw mysql_last_id() ktory to bedzie identyfikatorem danego wpisu ;p
astanas
Ok, zrobiłem to tak:
na początki pliku dodałem ob_start();
A w miejscu, gdzie wyświetlił by się komunikat:


  1.  
  2. $link = "www.adres.pl/koment_".$id."";
  3. header("Location: ".$link."");
  4.  


Wszystki jest dobrze, ale nie wiem czy taki sposób jest dobry, tzn używanie ob_start(); questionmark.gif
Kamil Pietrzak
nie wiem po co Ci w ogole ob
zrob dodatkowy plik a w nim odbierasz dane, robisz link i wywalasz
header('Location: '.$link); na koncu
jest jeszcze funkcja exit() ktora konczy dzialanei skryptu, ale chyba nei bedzie potrzebna
lnn
dzizas krajst, zrob tak:
  1. // jesli nacisniesz przycisk submit o nazwie dajmy na to "wyslij"
  2.  
  3. if (isset($_POST['wyslij'])) {
  4.  
  5. //zapis tych danych co tam zapisujesz
  6.  
  7. // polaczenie z baza o ile wczesniej nie zostalo nawiazane
  8. $last_insert = mysql_insert_id();
  9. $zapytanie = $mysql_query("SELECT * FROM jakastabela WHERE id = '".$last_insert."' ")
  10.  
  11. while ($show = mysql_fetch_array($zapytanie)) {
  12. // wyciagasz to co tam chcesz $show['id_w_tabeli']
  13. }
  14.  
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.