Posto je u pitanju joomla postavicu samo bitne delove koda:
Generisani HTML
PHP kôd:
<script type="text/javascript">
//<![CDATA[
function getTaxi(grad)
{
if (window.XMLHttpRequest)/* code for IE7+, Firefox, Chrome, Opera, Safari */
{
xmlhttp=new XMLHttpRequest();
}
else
{/* code for IE6, IE5 */
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4)/* && xmlhttp.status==200) */
{
document.getElementById("taxi").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","/taxi.php?grad="+grad,true);
xmlhttp.send();
}
function getTarifa(taxi)
{
if (window.XMLHttpRequest)/* code for IE7+, Firefox, Chrome, Opera, Safari */
{
xmlhttp=new XMLHttpRequest();
}
else
{/* code for IE6, IE5 */
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4)/* && xmlhttp.status==200) */
{
document.getElementById("tarifa").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","/tarifa.php?taxi="+taxi,true);
xmlhttp.send();
}
function getKm(taxi, tarifa)
{
if (window.XMLHttpRequest)/* code for IE7+, Firefox, Chrome, Opera, Safari */
{
xmlhttp=new XMLHttpRequest();
}
else
{/* code for IE6, IE5 */
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4)/* && xmlhttp.status==200) */
{
document.getElementById("km").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","/km.php?taxi="+taxi+"&tarifa="+tarifa,true);
xmlhttp.send();
} //]]>
</script>
<link rel="stylesheet" href="/templates/system/css/system.css" type="text/css" />
<link rel="stylesheet" href="/templates/system/css/general.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="/templates/taksimetar/css/template.css" media="screen" />
<!--[if IE 6]><link rel="stylesheet" href="/templates/taksimetar/css/template.ie6.css" type="text/css" media="screen" /><![endif]-->
<!--[if IE 7]><link rel="stylesheet" href="/templates/taksimetar/css/template.ie7.css" type="text/css" media="screen" /><![endif]-->
<script type="text/javascript">if ('undefined' != typeof jQuery) document._artxJQueryBackup = jQuery;</script>
<script type="text/javascript" src="/templates/taksimetar/jquery.js"></script>
<script type="text/javascript">jQuery.noConflict();</script>
<script type="text/javascript" src="/templates/taksimetar/script.js"></script>
<script type="text/javascript">if (document._artxJQueryBackup) jQuery = document._artxJQueryBackup;</script>
</head>
<body class="taxi-j16">
<div class="taxi-nostyle">
<form action="http://www.taksimetar.com/sr/?chronoform=Test&event=submit" name="Test" id="chronoform_Test" method="get" class="Chronoform"><div class="ccms_form_element cfdiv_custom" id="kalkulator_container_div"><label>Kalkulator</label><select name="grad" onchange="getTaxi(this.value)">
<option value="">Izaberi grad</option>
<option value="1">Beograd</option>
<option value="2">Novi Sad</option>
<option value="3">Nis</option>
</select>
<br />
<div id="taxi"></div>
<div id="tarifa"></div>
<div id="km"></div>
<div id="cena"></div>
<div class="clear"></div><div id="error-message-"></div></div><input type="hidden" name="72ceb93b74a936daab407adf4840f581" value="1" /></form><!-- don't remove the following 3 lines if you didn't buy a subscription -->
<div class="chronoform">
<a href="http://www.chronoengine.com">Powered By ChronoForms - ChronoEngine.com</a>
</div>
.....
JS:
PHP kôd:
function getTaxi(grad)
{
if (window.XMLHttpRequest)/* code for IE7+, Firefox, Chrome, Opera, Safari */
{
xmlhttp=new XMLHttpRequest();
}
else
{/* code for IE6, IE5 */
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4)/* && xmlhttp.status==200) */
{
document.getElementById("taxi").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","/taxi.php?grad="+grad,true);
xmlhttp.send();
}
function getTarifa(taxi)
{
if (window.XMLHttpRequest)/* code for IE7+, Firefox, Chrome, Opera, Safari */
{
xmlhttp=new XMLHttpRequest();
}
else
{/* code for IE6, IE5 */
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4)/* && xmlhttp.status==200) */
{
document.getElementById("tarifa").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","/tarifa.php?taxi="+taxi,true);
xmlhttp.send();
}
function getKm(taxi, tarifa)
{
if (window.XMLHttpRequest)/* code for IE7+, Firefox, Chrome, Opera, Safari */
{
xmlhttp=new XMLHttpRequest();
}
else
{/* code for IE6, IE5 */
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4)/* && xmlhttp.status==200) */
{
document.getElementById("km").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","/km.php?taxi="+taxi+"&tarifa="+tarifa,true);
xmlhttp.send();
}
taxi.php:
PHP kôd:
$grad=$_GET["grad"];
if ($grad=="1")
{
echo '<select name="taxi" onchange="getTarifa(this.value)">
<option>Izaberi taxi</option>
<option value="TaxiBG1">TaxiBG1</option>
<option value="TaxiBG2">TaxiBG2</option>
<option value="TaxiBG3">TaxiBG3</option>
<option value="TaxiBG4">TaxiBG4</option>
<option value="TaxiBG5">TaxiBG5</option>
</select><br />';
}
if ($grad=="2")
{
echo '<select name="taxi" onchange="getTarifa(this.value)">
<option>Izaberi taxi</option>
<option value="TaxiNS1">TaxiNS1</option>
<option value="TaxiNS2">TaxiNS2</option>
<option value="TaxiNS3">TaxiNS3</option>
<option value="TaxiNS4">TaxiNS4</option>
<option value="TaxiNS5">TaxiNS5</option>
</select><br />';
}
if ($grad=="3")
{
echo '<select name="taxi" onchange="getTarifa(this.value)">
<option>Izaberi taxi</option>
<option value="Bros Taxi">Bros Taxi</option>
<option value="Delta Taxi">Delta Taxi</option>
<option value="TaxiNI3">TaxiNI3</option>
<option value="TaxiNI4">TaxiNI4</option>
<option value="TaxiNI5">TaxiNI5</option>
</select><br />';
}
else
{
echo "Greska u taxi.php";
}
tarifa.php:
PHP kôd:
<?php
$taxi = htmlspecialchars($_GET["taxi"]);
mysql_connect("localhost", "******", "******") or
die("Could not connect: " . mysql_error());
mysql_select_db("******");
$result = mysql_query("SELECT * FROM jos_kalkulator WHERE ime='$taxi'");
$row = mysql_fetch_array($result, MYSQL_ASSOC);
echo $taxi;
echo '
<input type="radio" name="tarifa" value="tar1_cena" onchange="window.getKm('.$taxi.', this.value)" />Tarifa 1 '.$row["tar1_opis"].'<br \>
<input type="radio" name="tarifa" value="tar2_cena" onchange="window.getKm('.$taxi.', this.value)" />Tarifa 2 '.$row["tar2_opis"].'<br \>
<input type="radio" name="tarifa" value="tar3_cena" onhange="window.getKm('.$taxi.', this.value)" />Tarifa 3 '.$row["tar3_opis"].'<br \>
';
?>
km.php
PHP kôd:
<?php
$taxi = $_GET["taxi"];
$tarifa = $_GET["tarifa"];
mysql_connect("localhost", "taksimet_v0idmp3", "petkovic1993") or
die("Could not connect: " . mysql_error());
mysql_select_db("taksimet_taksi");
$result = mysql_query("SELECT * FROM jos_kalkulator WHERE ime='$taxi'");
$row = mysql_fetch_array($result, MYSQL_ASSOC);
echo "Text iz km.php";
$start = $row["start"];
$tarifaDB = $row[$tarifa];
echo '<input type="text" name="km" />';
echo "<input type='button' value='Izracunaj' onClick='getCena(".$start.",".$tarifaDB.", document.getElementById('km').value)";
?>
Poslednju JS skriptu nisam jos uvek uradio. To cu zavrsiti kad resim ovaj problem. Znaci, korisnik prvo bira grad iz dropdown liste. Kada izabere grad, poziva se fajl taxi.php koji na osnovu izabranog grada postavlja listu dostupnih taxi sluzbi u tom gradu. Kada korisnik izabere taxi sluzbu, poziva se fajl tarifa.php koji daje mogucnost biranja jedne od tri moguce tarife (prva, druga i treca). Svaka tarifa ima drugaciju cenu i opis (tarifa 1 ima cenu od 45 dinara, a opis je "od 06 do 22h"). Korisnik treba da izabere jednu od tri tarifa (tu nastaje problem) i da JS pozove fajl km.php i da mu prosledi dva parametra: taksi sluzbu ($taxi) i tarifu. I sad tu imam problem. Sve lepo funkcionise do momenta kada korisnik treba da izabere tarifu i da mu se otvori mogucnost da unese kilometrazu. Kako sve radi mozete da vidite na
www.taksimetar.com.
P.S. U pitanju je skripta za izracunavanje priblizne cene voznje taksijem na osnovu tarife, cene starta i predjene kilometraze