ďťż
Podstrony
|
telcocafeAhojMam mały problem i zastanawiam się jak go rozwiązać. Otóż mam index'a.php ze stałą zawartością, a w nim includowany plik (np strona.php). Gdy umieszczam w includowanej stronie jakiś odnośnik albo formularz, to co dopisać do kodu, aby po kliknięciu na jakiś link/button przeładowywała się tylko i wyłącznie includowana zawartość (strona.php), a index pozostawał bez zmian. Ale pogmatwałem... Trochę prościej opisane: Mam index'a.php i includowany plik (strona.php). Gdy w pliku strona.php umieszczam fomularz to co mam do parametrów dopisać, aby tylko strona.php była przeładowywana? Jak umieszczam w atrybucie "action" adres: index.php?page=strona i po wysłaniu danych GET'em to adres wynikowy wygląda tak: index.php?daneciekawe=aaa i w wyniku strona nie wyświetla się poparawnie -------------------------------------------------------------------------------------------------- Natomiast jak w atrybucie action dam: strona.php , to strona.php otwiera się, ale jest na całej "szerokości". Nie ma natomiast pliku "index.php" który ma za zadanie includować "strona.php" // jak będą problemy ze zrozumieniem, to mówcie.... Użytkownik sauron edytował ten post 03 sierpień 2007, 18:10 A może mod_rewrite pomoże? Spróbuj przekierować index.php?page=strona na index_strona.html i do niej wysyłaj dane. Ewentualnie możesz zrobić input typu hidden i tam pobierać, i przekazywać $_GET['action']. //edit Edytowałem, bo źle Cię zrozumiałem.:) Użytkownik kiperoman edytował ten post 03 sierpień 2007, 18:36 @up No tak ale tam mam fomularz z polem typu "text" i nie za bardzo byłoby gdybym już z góry nadawał wartość do zmiennej ;) // zmieniłeś treść postu ;] A jak to zmienić, nie ingerując w URL? Tzn. zostawić tak jak było i dalej się głowić nad include ;) @jeszcze raz up: Rozwiń swoją myśl, z tym inputem "hidden", bo troche nie rozumiem do czego dążysz... ;-) Użytkownik sauron edytował ten post 03 sierpień 2007, 18:42 Strasznie nagmatwałeś :P Z tego co napisałeś można wywnioskować,że chcesz użyć Ajaxa,ale nic o tym nie wspomniałeś. BTW Jak można przeładować sam plik includowany nie używając Ajaxa? :P Bo to trochę dziwne . . . IMO Można to rozpatrzeć jeszcze inaczej :P Tylko nie potrafię tego określić :P Daj jakiś kodzik jeśli Twoja myśl go uwzględnia :D Bo ciężko się pracuje na teorii . . . ~ Na szybko napisałem takie coś: <table width="80%" height="100%" border="0"> <tr> <td width="30%"> JAKAŚ TAM STAŁA WARTOŚĆ (Nie ma się przeładowywać) </td> <td width="50%"> <?php include('strona.php'); ?> </td> </tr> </table> Plik strona.php: <form action="index.php?page=strona" method="GET"> <input type="text" name="wartosc"> <input type="submit" value="Wyślij"> </form> Jak zrobić, żeby ta includowana strona dalej przesyłała wartości (a nie cała index.php) tzn. żeby strona.php była odświeżana itepe, a index.php został taki jaki jest ;] Chodzi mi o coś takiego jak w np. iframe parametr "target". Można byłoby wtedy zdefiniować, w której ramce ma być otworzona dana www ;-) Użytkownik sauron edytował ten post 03 sierpień 2007, 19:43 Niewiele więcej zrozumiałem :P W czym dokładnie jest problem? Chcesz zrobićinclude($_GET['page']);czy by strona.php miała zmienną wartość? //edit Przecież to jest definitywnie Ajax <_< Chyba że chcesz iframe :P Użytkownik andrzej_aa edytował ten post 03 sierpień 2007, 19:48 O ile dobrze zrozumiałem, to chcesz aby po wysłaniu formularza nie doszło do przeładowania całej strony (czyli wszystkiego co jest wyświetlane w przeglądarce), tylko do przeładowania załączanego pliku. Tak się niestety nie da. Includowanie odbywa się już na serwerze, a do przeglądarki dociera jeden dokument HTML (no chyba, że stosujesz ramki). Jeśli nie chcesz przeładowania całego wyświetlanego dokumentu to albo AJAX, jak sugerował andrzej_aa, albo stronę z formularzem umieść w ramce (np iframe). Tyle, że to drugie rozwiązanie jest be. //edit include($_GET['page']); Powyższego szczerze odradzam. To bardzo ryzykowne rozwiązanie. Pozdrawiam. Użytkownik mikele edytował ten post 03 sierpień 2007, 20:13 @jeszcze raz up: Rozwiń swoją myśl, z tym inputem "hidden", bo troche nie rozumiem do czego dążysz... ;-) Bez przeładowywania to only AJAX. Jednak możesz w pliku strona.php dodać kod w formularzu: <input name="action" type="hidden" value=<? echo '"''.$_GET['action']."'; ?> /> Oczywiście strona będzie całkiem odświeżana przy takim rozwiązaniu, ale będzie przechodzić na stronę index.php?action=strona&wartosc=cośtam czyli zrobi to co chciałeś osiągnąć. Użytkownik kiperoman edytował ten post 03 sierpień 2007, 20:36 @kiperoman: :notworthy: Po malych przeróbkach jest :thumbsup: |
|||
Sitedesign by AltusUmbrae. |