Hoppas att rubriken är någotsånär beskrivande
Jag vill göra följande:
på en webbsida så har jag två st inmatningsrutor
Där jag i den ena vill ange en avreseort och den andra en destination
sedan så har jag en databastabell (har bara en tabell för enkelhetens skull)
där varje rad har en avreseort, en destination och en vägbeskrivning.
Problemet jag har med koden(som postas nedan) är att jag bara kan ta in info från avresefältet och ta fram rader som har denna som avreseställe...
Det jag tror är fel är att jag bara kan "skicka en grej" till getXMLHttpRequest() som presenteras längst ner...
Tar tacksamt emot tips:)=
Det jag använder nu är:
JAVASCRIPTFILEN:
function startJS() {
xhrequest = null;
try {
xhrequest = getXMLHttpRequest();
}
catch(error) {
document.write("Cannot run Ajax code using this browser");
}
if(xhrequest != null) {
// get form values
var strDeparture = document.getElementById("strDeparture").value;
var strUrl = "example18-2.php?strDeparture=" +strDeparture;
xhrequest.onreadystatechange = changePage;
xhrequest.open("GET", strUrl, true);
xhrequest.send(null);
}
}
function changePage() {
if (xhrequest.readyState == 4 && xhrequest.status == 200) {
var strResponse = xhrequest.responseText;
document.getElementById("strRoute").innerHTML = strResponse;
}
}
Sedan har jag min phpfil:
<?php
// File: example18-2.php
$strDeparture = $_GET["strDeparture"];
$dbRoute = mysql_connect("databasensnamn och lösenord etc")
or die("Could not connect: " .mysql_error() );
mysql_select_db("databasensnamn", $dbRoute)
or die("Could not find database: " .mysql_error() );
$dbRecords = mysql_query("SELECT * FROM routes WHERE Departure='$strDeparture' ", $dbRoute)
or die("Problem reading table: " . mysql_error());
$intRecords = mysql_num_rows($dbRecords);
if ($intRecords == 0)
echo "<p>Stock Item '$strDeparture' Unknown.</p>";
else {
while ($arrRecords = mysql_fetch_array($dbRecords)) {
$strRoute = $arrRecords["Route"];
$strArrival = $arrRecords["Arrival"];
echo "<p>$strDeparture : $strRoute: $strArrival</p>";
}
}
?>
Jag har även en fil som heter // getxmlhttprequest.js som jag misstänker kontrollerar det som matas in... jag TROR att det är denna som orsakar problem (jag har tagit ett exempel ur en bok som jag modifierar för att lära mig, därför har jag inte fullständig koll...
Den ser iaf ut såhär:
// getxmlhttprequest.js
function getXMLHttpRequest()
{
var xhrequest = null;
if(window.XMLHttpRequest)
{
// If IE7, Mozilla, Safari, etc: Use native object
try
{
xhrequest = new XMLHttpRequest();
return xhrequest;
}
catch(exception)
{
// OK, just carry on looking
}
}
else
{
// ...otherwise, use the ActiveX control for IE5.x and IE6
var IEControls = ["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp"];
for(var i=0; i<IEControls.length; i++)
{
try
{
xhrequest = new ActiveXObject(IEControls[i]);
return xhrequest;
}
catch(exception)
{
// OK, just carry on looking
}
}
// if we got here we didn’t find and matches
throw new Error("Cannot create an XMLHttpRequest");
}
}