Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Dwie i więcej zmienne na stronie
Forum PHP.pl > Forum > Przedszkole
bobek1984
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.
maniekl2
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
kamioool
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>

bobek1984
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
maniekl2
no to pokaż jak wygląda skrypt który ci nie wychodzi
bobek1984
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ć
maniekl2
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. ?>
bobek1984
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";
}
?>
maniekl2
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. ?>
bobek1984
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/
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.