на какво се дължи тази грешка?

ще ви го обясня по подробно
Използвам AJAX като пълня комбоксове с информация от БД грешката избива след като направя избора от втория комбобокс т.е. избирам данни от първия и след това пълни втория и след като избера втория трябва да изпълни събитие OnChange при което се извиква функцията getCity а ето и кода на AJAX ако трябва още код ще ви пусна

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();
document.form1.city.options.length=0
document.form1.city.options[0]=new Option("Избери град", "i", true, false)

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="findCity1.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>
 
Използвах Firebug за да видя къде е грешката и вижте какво ми дава
va is not defined
onchange(change )
getCity(va, this.value);
 
пробвах с кавички а и това va е стойност която се получава от променлива ще ви пусна и ХТМЛ код
 
ето и кода на втория комбобокс от който изплува грешката

<select name="state" onchange="getCity(<?=$country?>, this.value)">
<option value="i"> Избери предмет</option>
<?php
do {
?>
<option value="<?php echo $row_Recordset1['predlat1']?>"><?php echo $row_Recordset1['predmet']?></option>
<?php
} while ($row_Recordset1 = mysql_fetch_assoc($Recordset1));
$rows = mysql_num_rows($Recordset1);
if($rows > 0) {
mysql_data_seek($Recordset1, 0);
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
}
?>
</select>

както се вижд използвам и ПХП код
 
когато това <?= $country?> го сменя с число работи но с текс го смених пак не работи да няма някаква защита за стринг гледах функциите ама не забелязах нищо
 
според мен ти дава грешка , защото в js-а нямаш дефинирана променливата. Пробвай да дефинираш тази променлива и после където е пхп кода да зададеш на ккво да е равна или направо нещо такова:

var va = <?= $string ?> ;
 
Код:
<script>
function getCity(countryId,stateId) {
alert(countryId+'::'+stateId);
var strURL="findCity1.php?country="+countryId+"&state="+stateId;
}
</script>

<select name="state" onchange="getCity('va', this.value)">
<option value="i"> Избери предмет</option>
<option value="2">dve</option>
<option value="3">tri</option>
<option value="3">chetiri</option>
</select>

съкратих го малко. До колкото разбрах getCity ти прави проблема. Сложих va в кавички и вече при мен си работи :roll:
 

Back
Горе