PHP switch, url mooier maken?

Status
Niet open voor verdere reacties.

thapriest

Gebruiker
Lid geworden
28 okt 2009
Berichten
559
Goedmiddag,

Ik heb het volgende gemaakt, om mbv switch een tab menuutje te krijgen, ik wou dit niet met javascript doen want .1 ik ken het niet en .2 als gebruikers het uit hebben staan heb je er nog niets aan.

Hoe kan ik met onderstaande ervoor zorgen dat:
.1Ik mooie urls kan maken, bijv. met de naam van de reis, en evt toevoegsel html? en kan dat uberhaupt?
.2 ik wil graag dat de switch op de zelfde pagina gebeurt, dus niet van de pagina afgaat, nu gebeurt dat wel maar laad ik dezelfde pagina met een ander tabje, kan dit sneller/beter?

PHP:
<?php
$sql = mysql_query("SELECT * FROM accomodations WHERE id='".mysql_real_escape_string($_GET["id"])."' "); // tabelnaam veranderen in het juiste naam van de tabel
 while($record = mysql_fetch_array($sql)) {
		$thumbnail = $record['thumbnail'];
        $reis_id=$record['id'];
        $land_id = $record['land_id'];
        $code = $record['code'];
        $alias = $record['alias'];
        $naam = $record['naam'];
        $plaats = $record['plaats'];
        $intro = $record['intro'];
        $vanafPrijs = $record['vanafPrijs'];
        $infoAlgemeen = $record['infoAlgemeen'];
        $infoFaciliteiten = $record['infoFaciliteiten'];
        $acco=$record['accomodatieTypes'];
        $klasse = $record['klasse'];
		$infoAccomodatie = $record['infoAccomodatie'];
  		}

if(!isset($_GET['p'])) { $_GET['p'] = ''; }
if(!isset($_GET['action'])) { $_GET['action'] = 1; }



echo'<h3>';
echo $naam;
echo '</h3>' ;

echo'
<style>
	#tab {  
	padding: 15px;} 

	
	#tab
	#navigation  ul li  {  
	display: inline;	  
	padding: 4px 15px; 
	cursor: pointer;  
	background-image:url(img/but_nav_geel.png);  
	border: 1px solid #3da0d4;  
	border-bottom: none;  
	margin-right: 0px;} 
	
	.content{
	border:1px solid #3da0d4; 
	}
	

</style>
<div id= "tab">
	<div id="navigation">


<div id="een">
<ul>
<li><a href="index.php?id='.$reis_id.'&p=0&action=1">Algemeen</a></li>
<li><a href="index.php?id='.$reis_id.'&p=2&action=1">Faciliteiten</a></li>
<li><a href="index.php?id='.$reis_id.'&p=3&action=1">Accommodatie</a></li>
<li><a href="index.php?id='.$reis_id.'&p=4&action=1">Kamertypes</a></li>
<li><a href="index.php?id='.$reis_id.'&p=5&action=1">Aanbiedingen</a></li>
</ul>


</div> </div> ';

switch ($_GET['p']) {
   case 0:
      echo '<div class="content">';
	  echo $infoAccomodatie;
	  echo '</div>';
 
   break;
   case 2:
      echo  '<div class="content">';
	  echo $infoFaciliteiten;
	  echo '</div>';
		 
   break;
   case 3:
      echo '<div class="content">case 3</div>';
   break;
   case 4:
      echo '<div class="content">case 4</div>';
   break;
   default:
   echo '<div class="content">begin</div>';
   break;
}

?>
 
Als je de URL wilt aanpassen, moet je kijken naar de mod_rewrite van Apache, daarmee kun je bepalen welke URL naar welke locatie wordt doorverwezen; dan kun je de URL precies zo laten worden als jij wilt, ongeacht hoe de PHP structuur eronder werkt.
 
Ik heb even gekeken naar de mod_rewrite functie, en dacht dat ik hem begreep, echter mijn urls veranderen niet?
Ik heb een aantal tutorials gedaan, maar ik krijg niets veranderd.

mijn .htacces (de regels die ik heb toegevogd staan onder Custom

Code:
# For full documentation and other suggested options, please see
# http://svn.modxcms.com/docs/display/MODx096/Friendly+URL+Solutions
# including for unexpected logouts in multi-server/cloud environments
# and especially for the first three commented out rules

#php_flag register_globals On
#AddDefaultCharset utf-8
#php_value date.timezone Europe/Moscow

Options +FollowSymlinks
RewriteEngine On
RewriteBase /



# Fix Apache internal dummy connections from breaking [(site_url)] cache
RewriteCond %{HTTP_USER_AGENT} ^.*internal\ dummy\ connection.*$ [NC]
RewriteRule .* - [F,L]

# Rewrite domain.com -> www.domain.com -- used with SEO Strict URLs plugin
#RewriteCond %{HTTP_HOST} .
#RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
#RewriteRule (.*) http://www.example.com/$1 [R=301,L]

# Exclude /assets and /manager directories and images from rewrite rules
RewriteRule ^(manager|assets)/*$ - [L]
RewriteRule \.(jpg|jpeg|png|gif|ico)$ - [L]

#Custom
RewriteRule ^modx/reizen/(.*)/(.*)/(.*)/$ modx/reizen/index.php?id=$1&p=$2&action=$3 [R,L]
RewriteRule ^modx/reizen/(.*)/(.*)/$ modx/reizen/index.php?id=$1&p=$2 [R,L]
RewriteRule ^modx/reizen/(.*)/$ modx/reizen/index.php?id=$1 [R,L]


# For Friendly URLs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /modx/index.php?q=$1 [L,QSA] 


# Reduce server overhead by enabling output compression if supported.
#php_flag zlib.output_compression On
#php_value zlib.output_compression_level 5
 
Mod URLs werken de andere kant op... je moet de mooie URL in je balk zetten en dan zou alsnog de juiste pagina moeten laden. Als je naar een normale URL linkt ziet die er nog steeds normaal en dus niet mooi uit.

Als de mooie URLs werken moet je dus je files nog updaten en alle oude <a> vervangen door de nieuwe linkjes.
 
Moet ik dan de regels in mn htacces omdraaien?
En dan geef ik mn <a> 'd de nieuwe url's mee zodat de mod-rewrite ze om kan zetten?

begrijp ik het zo goed?

Heb je misschien een klein voorbeeldje?
 
Even ter aanvulling, mijn menu;s en dergelijke zijn vanuit mijn cms uit al wel goed gelinkt, echter , het zoekformulier(wwaar je me eerder mee geholpen hebt, en wanneer je doorklikt op resultaten wordt dus nog lelijk weergeven.

Nu is het dus zaak om virtuele paden op te geven(?) daarvoor, en deze dan met mod-rewrite te herschrijven.
Alleen het hoe ontbreekt me nog.

wanneer ik bijv. met het zoekformulier nu op een land zoek is de url: http://localhost/modx/reizen/index.php?id=75
En ik zou graag hebben dat het dan http://localhost/modx/reizen/naamvanland.html wordt.

ik weet niet of t uitmaakt, maar zoals je hierboven ziet, draai ik dus virtueel op xampp
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan