• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Ajax vorraussetzungen

Status
Für weitere Antworten geschlossen.

Aldimaster

Neues Mitglied
Hi Leute,

arbeite mich gerade in Ajax ein da ich eine dynamische Auswahlliste haben möchte aber das ist ein anderes Thema das unter HTML schon diskutiert wurde. Ich habe einen Homeserver auf dem Apache und MySql installiert ist. Nun habe ich nach tutorials mal ajax in verbindung mit Mysql gemacht und festgestellt das es nicht geht =(

Hat Ajax vorraussetzung serverseitig also sprich muss ich noch was auf dem server installieren wie .net framework oder co. ???

Gruß
Aldimaster
 
Ajax ist nichts anderes als JavaScript, dass den Inhalt einer Seite auf deinem Server holen geht.

Du kannst ein Script aufrufen, dass sich auf deinem Server befindet mit Ajax.
 
Also momentan schauen die php dateien so aus:

index.php
PHP:
<html>
<head>
<title>Ajax Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript" type="text/javascript">
function getXMLHTTP() { //fuction to return the xml http object
        var xmlhttp=false;    
        try{
            xmlhttp=new XMLHttpRequest();
        }
        catch(e)    {        
            try{            
                xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e){
                try{
                xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
                }
                catch(e1){
                    xmlhttp=false;
                }
            }
        }
             
        return xmlhttp;
    }
    
    function getState(countryId) {        
        
        var strURL="findState.php?country="+countryId;
        var req = getXMLHTTP();
        
        if (req) {
            
            req.onreadystatechange = function() {
                if (req.readyState == 4) {
                    // only if "OK"
                    if (req.status == 200) {                        
                        document.getElementById('statediv').innerHTML=req.responseText;                        
                    } else {
                        alert("There was a problem while using XMLHTTP:\n" + req.statusText);
                    }
                }                
            }            
            req.open("GET", strURL, true);
            req.send(null);
        }        
    }
    function getCity(countryId,stateId) {        
        var strURL="findCity.php?country="+countryId+"&state="+stateId;
        var req = getXMLHTTP();
        
        if (req) {
            
            req.onreadystatechange = function() {
                if (req.readyState == 4) {
                    // only if "OK"
                    if (req.status == 200) {                        
                        document.getElementById('citydiv').innerHTML=req.responseText;                        
                    } else {
                        alert("There was a problem while using XMLHTTP:\n" + req.statusText);
                    }
                }                
            }            
            req.open("GET", strURL, true);
            req.send(null);
        }
                
    }
</script>
</head>
<body>
<form method="post" action="" name="form1">
<table width="60%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="150">Country</td>
    <td  width="150"><select name="country" onChange="getState(this.value)">
    <option value="">Select Country</option>
    <option value="1">USA</option>
    <option value="2">Canada</option>
        </select></td>
  </tr>
  <tr style="">
    <td>State</td>
    <td ><div id="statediv"><select name="state" >
    <option>Select Country First</option>
        </select></div></td>
  </tr>
  <tr style="">
    <td>City</td>
    <td ><div id="citydiv"><select name="city">
    <option>Select State First</option>
        </select></div></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
</form>
</body>
</html>
Dann die findstate.php
PHP:
<? $country=intval($_GET['country']);
$link = mysql_connect('localhost', 'root', 'passwort'); //changet the configuration in required
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db('db_ajax');
$query="SELECT id,statename FROM state WHERE countryid='$country'";
$result=mysql_query($query);

?>
<select name="state" onchange="getCity(<?=$country?>,this.value)">
<option>Select State</option>
<? while($row=mysql_fetch_array($result)) { ?>
<option value=<?=$row['id']?>><?=$row['statename']?></option>
<? } ?>
</select>
und findcity.php
PHP:
<? $countryId=intval($_GET['country']);
$stateId=intval($_GET['state']);
$link = mysql_connect('localhost', 'root', 'passwort'); //changet the configuration in required
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db('db_ajax');
$query="SELECT id,city FROM city WHERE countryid='$countryId' AND stateid='$stateId'";
$result=mysql_query($query);

?>
<select name="city">
<option>Select City</option>
<? while($row=mysql_fetch_array($result)) { ?>
<option value><?=$row['city']?></option>
<? } ?>
</select>
Meine MySQL Datenbank ist richtig konfiguriert und das Script kann sich auch mit der Datenbank verbinden aber funktionieren tut es nicht wer es selber sehen will:
Ajax Test
 
Zuletzt bearbeitet:
Also bei mir steht was in der Fehlerkonsole (du musst natürlich etwas auswählen, der Fehler ist im AJAX Response).
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben