Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Dwie i więcej zmienne na stronie
bobek1984
post 1.11.2008, 19:47:09
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 1.08.2008
Skąd: Terespol

Ostrzeżenie: (0%)
-----


Witam. Odrazu mówię, że jestem początkujący. Mam pewien problem (naset nie wiem czy go będę umiał opisać).
Otóż znalazłem taki skrypcik:
<?php
if(ctype_alnum($_GET['plik']===false))
{
$plik= 'dane/glowna.php';
}
else
{
$plik= 'dane/'.$_GET['plik'].'.php';
}

if(file_exists($plik)===true)
{
include($plik);
}
else
{
include('dane/glowna.php');
}
?>

I bardzo mi się on podoba bo chodzi szybko (jak dla mnie) i jest łatwo dodać następny link.

I teraz moje pytanie:
Jak zrobić coś takiego jak na tej stronie: http://powertecfitness.com/product.php?id=...;view=exercises

Chodzi mi o to, że wchodzimy na jakiś produkt (product.php?id=1) (i to jeszcze zrobie:D:D:D) a tam na tej stronce po lewej stronie jest tak jakby podmenu. Po kliknięciu 1 zmienna w adresie zostaje taka sama a druga się zmienia i pojawia się nowy tekst. I tu moje pytanie.
Jak to łatwo i prosto zrobić?questionmark.gif
Kombinowałem z tym skrypcikiem ale coś mi nie wychodzi.

Proszę o pomoc.

Z góry thx.
Go to the top of the page
+Quote Post
maniekl2
post 1.11.2008, 20:03:42
Post #2





Grupa: Zarejestrowani
Postów: 162
Pomógł: 29
Dołączył: 6.04.2008

Ostrzeżenie: (0%)
-----


Może coś w tym stylu :

  1. <?php
  2. if(isSet($_GET['plik']) && !isSet($_GET['plik2'])) { // jeżeli istnieje zmienna plik ale nie istnieje zmienna plik2
  3.  
  4. $plik= 'dane/'.$_GET['plik'].'.php';
  5.  
  6. }else if(isSet($_GET['plik2'])) { // jeżeli istnieje zmienna plik2
  7.  
  8. $plik= 'dane/'.$_GET['plik2'].'.php';
  9.  
  10. } else if(!isSet($_GET['plik']) && !isSet($_GET['plik2'])) { // i jeżeli żadne zmienne z wymienionych nie występują
  11. $plik= 'dane/glowna.php';
  12. }
  13. ?>


Tylko dodaj jeszcze warunki jeżeli zmienne są puste

Ten post edytował maniekl2 1.11.2008, 20:06:24
Go to the top of the page
+Quote Post
kamioool
post 1.11.2008, 20:19:34
Post #3





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 1.01.2008

Ostrzeżenie: (10%)
X----


Kod
<?php
   $body = $_GET["body"];
php?>


Stwórz sobie folder includes: I tam np pliki
produkt1.php ; produkt2.php ; error.php itd.
oraz
menu.php

I teraz Tak: W miejscu w którym chcesz mieć wyświetlane produkty wstawiasz kod

Kod
<?
   if ($body=="")
          {
          include("includes/main.php");
          }
  
   else {
  
   if (is_file("includes/$body.php"))
           {
             include("includes/$body.php");
           }  
    
   else
           {
               include("includes/error.php");
           }    
           }  
  
                                
   ?>


A w miejscu w ktorym chcesz mieć np. menu
Kod
<? include("includes/menu.php")?>



a plik menu wygląda tak

Kod
<a href="?body=produkt">produkt</a><br>
  <a href="?body=produkt">produkt</a><br>
   <a href="?body=produkt">produkt</a><br>
   <a href="?body=produkt">produkt</a><br>



Ten post edytował kamioool 1.11.2008, 20:21:44
Go to the top of the page
+Quote Post
bobek1984
post 1.11.2008, 21:31:33
Post #4





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 1.08.2008
Skąd: Terespol

Ostrzeżenie: (0%)
-----


Hmm ale ja troszkę was nie rozumiem. Widzieliście tą stronę co podałem?? Maniekl2 u ciebie to jeszcze troche rozumiem o co chodzi ale próbuje i coś mi nie wychodzi sad.gif
Go to the top of the page
+Quote Post
maniekl2
post 1.11.2008, 21:38:01
Post #5





Grupa: Zarejestrowani
Postów: 162
Pomógł: 29
Dołączył: 6.04.2008

Ostrzeżenie: (0%)
-----


no to pokaż jak wygląda skrypt który ci nie wychodzi
Go to the top of the page
+Quote Post
bobek1984
post 1.11.2008, 21:56:11
Post #6





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 1.08.2008
Skąd: Terespol

Ostrzeżenie: (0%)
-----


kurcze najgorsze jest ze ja nie wiem jak to mam wytłumaczyć :/ ale jeszcze chwile pokombinuje i dam znać jak cos

Udało mi się zrobić prowizorke. Ten sam skrypt co napisałem na początku to wrzuciłem takie 2 (z innymi atrybutami) i w sumie to prawie dostałem efekt taki jak chciałem. Ale jednak to nie to. sad.gif

http://bloodline.leadhoster.com/index.php?...amp;view=video1

I tak jak jest sam index.php nie ma nic. Samo "id" 1 tekst i z "view" drugi tekst.

Ale jednak chciałbym żeby to było tak jak na tamtej stronie (chociaż troche).

Wyjaśnię:

Mam pierwszą zmienną o nazwie "id" odpowiadającej za produkty i drugą "view" która się odwołuje do 3 innych. I na tamtej stronie wywołanie czegoś w stylu id=1&view=specs da nam specyfikacje produktu nr "1" ale już wywołanie id=2&view=specs da specyfikacje produktu nr 2 i tu sie własnie zastanawiam jak to zrobić

Ten post edytował bobek1984 1.11.2008, 22:33:16
Go to the top of the page
+Quote Post
maniekl2
post 2.11.2008, 11:56:27
Post #7





Grupa: Zarejestrowani
Postów: 162
Pomógł: 29
Dołączył: 6.04.2008

Ostrzeżenie: (0%)
-----


no to możesz zrobić to na podstawie bazy danych, ale pewnie wolisz inaczej więc możesz zrobić tak :

Nazwij pliki przykładowo 1_video1 lub 2_wideo1

i pobieraj plik tak :
  1. <?php
  2. $plik = ''.$_GET['id'].'_'.$_GET['view'].''; // czyli przykładowo : 3_video1
  3. ?>


Ten post edytował maniekl2 2.11.2008, 11:57:48
Go to the top of the page
+Quote Post
bobek1984
post 3.11.2008, 17:52:27
Post #8





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 1.08.2008
Skąd: Terespol

Ostrzeżenie: (0%)
-----


Już w miarę rozwiązałem swój problem. Dzięki za pomoc, Wasze przykłady się przydały ale mam jeszcze jedno pytanie. Jak skrócić zapis:

<?
$_GET['id'];
if ($id == 1)
{
include ('produkty/'.$id.'/main.php');
}
elseif ($id == 2)
{
include ('produkty/'.$id.'/main.php');
}
else
{
echo "ble";
}
?>

a pytam się dlatego, że "id" będzie ponad 80, więc zajmie to dużo miejsca.


Rozgryzłem to na taki sposób:
<?
$_GET['id'];
if ($id == true)
{
include ('produkty/'.$id.'/main.php');
}

elseif ($id == false)
{
echo "ble";
}
?>

Ten post edytował bobek1984 3.11.2008, 18:47:28
Go to the top of the page
+Quote Post
maniekl2
post 3.11.2008, 19:43:11
Post #9





Grupa: Zarejestrowani
Postów: 162
Pomógł: 29
Dołączył: 6.04.2008

Ostrzeżenie: (0%)
-----


no zastosuj wyrażenie regularne smile.gif
  1. <?php
  2. if(preg_match('/^[0-9]*$/', $_GET['id'])) { // jeżeli $_GET['id'] jest liczbą
  3.  
  4. } else { // jeżeli $_GET['id'] nie jest liczba
  5.  
  6.  
  7. }
  8. ?>

średnio rozumiem ten twój zapis :
  1. <?php
  2. $_GET['id'];
  3. ?>


Ten post edytował maniekl2 3.11.2008, 19:44:28
Go to the top of the page
+Quote Post
bobek1984
post 3.11.2008, 21:30:34
Post #10





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 1.08.2008
Skąd: Terespol

Ostrzeżenie: (0%)
-----


To co napisałeś działa, ale wtedy gdy w adresie jest index.php?id=1. A gdzie jest samo index.php to wywala mi błąd. Niech zostanie tak jak jest biggrin.gif.

Teraz mam pytanie z drugiej beczki.
Na tej stronie co podałem: http://powertecfitness.com/ jest na górze men, które po części (tej większej) jest zrobione we flashu. Moje pytanie to czy coś podobnego dałoby się zrobić w samym PHP lub razem z JS. Tzn wiem, że się da w Javie, ale zbytnio nie wiem jak (jak zwykle). Chodzi mi o to, że jak się najedzie kursorem na obrazek to wyskakuje ta ramka właśnie, tylko, że nie w Flashu tylko normalnie

A odnośnie tego skryptu co pisałem jest on tu: http://bloodline.leadhoster.com/www/

Ten post edytował bobek1984 4.11.2008, 10:12:37
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 03:46