Взимане на value от option с JS

  • Автор Автор xD
  • Начална дата Начална дата

xD

Registered
Здравейте.. Вече ми трябва помощ и реших да се обърна към Вас.
Целта ми е да като изкара от selSubCat да взема от него <option value="0"> с слагане на info(this.value); в селекта.
Но за сега ми взима от selCat, ето и скрипта ->

<html>
<head>
<script language="JavaScript" src="./ajax.js"></script>
</head>
<body>
<?
error_reporting(E_ALL);
require_once("show.php");
$obj = new AjaxDropdown();
$arr = $obj->getArray(0);
$option = '<option value="0">--Country New--</option>';
foreach ( $arr as $row ) {
$option .= '<option value="'.$row->cID.'">'.$row->country.'</option>';
echo "$row->cID : $row->country<br>";
}
?>
<script language=Javascript>

function info(str, Cat, SubCat){
if (str==""){
document.getElementById("show").innerHTML="";
return;
}
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
} else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("show").innerHTML=xmlhttp.responseText;
}
}
var Cat = form.selCat.options[form.selCat.options.selectedIndex].value
var SubCat = form.selSubCat.options[form.selSubCat.options.selectedIndex].value
alert("selCat is"+Cat);
alert("selSubCat is"+SubCat);
alert("str is"+str);
var url="show.php";
url=url+"?method=getHTML&param="+str;
url=url+"&cid="+selSubCat;
xmlhttp.open("GET",url,true);

xmlhttp.send();
}
</script>

<div id="loading"></div>

<table border="1" cellpadding="1" cellspacing="1" align="center" width="40%">
<form name="form">
<tr>
<td>
<select name="selCat" class="text" onChange="javascript:Ajax.Request('show.php?method=getXML&param=',this.value, Ajax.Response); "><? echo $option; ?></select>
<select name="selSubCat" id="selSubCat" class="text" onChange="info(this.value);"><option value="0">--Price--</option></select>
</td>
</form>
<tr><td><div id="show"><b>Please Select...</b></div></td></tr>
</tr>
</table>

</body>
</html>
Само ако се смехи selCat ми показва ИД-то му... което не искам така.

До тук бях с мойте идей, моля дайте Ваще. :wink:
 
selCat взима id, i country от таблицата , selSubCat му се задава по името от xml от javascript.
на мен мисълта ми е когато вече е селекнато и двете отдолу да показва и другата информация. -/"showme"/
но за тази работа ми трябва да се вземе и ид-то на selsubcat.. което не става..
сега ?
 
Ми или и пращай this.value и this.id или просто си пращай this и във функцията си вземай кавкото ти трябва :idea:
 
Вместо
Код:
this.value
ползвай
Код:
this.options[selectedIndex].value
при извикването на функцията. ;)
 
нестава.
пробвах с [js]alert(this.options[this.selectedIndex].value);[/js]
и винаги показва 1 в subSelCat

извикващата функция на първия селект е с array , но втората е с xml и за това сигурно не става -
?method=getXML&param=1 - и изкарва where id=1 следните които са така
и към втория селект отива ->

<categories>
−
<category>
<id>1</id>
<fname>here1</fname>
</category>
−
<category>
<id>1</id>
<fname>here2</fname>
</category>
−
<category>
<id>1</id>
<fname>here3</fname>
</category>
</categories>

И извикващата фукнция е с js ->
--------------------------------
Ajax.Response = function ()
{
if(Ajax.CheckReadyState(Ajax.request))
{
document.getElementById('selSubCat').length = 0;
document.getElementById('selSubCat').options[0] = new Option("--Select--","0");

var response = Ajax.request.responseXML.documentElement;
var _data = response.getElementsByTagName('category');
if(_data.length == 0)
{
document.getElementById('selSubCat').options[0] = new Option("No sub category available",'0');
}
var i
for ( i = 0 ; i < _data.length ; i ++ )
{
document.getElementById('selSubCat').options = new Option(response.getElementsByTagName('fname').firstChild.data,response.getElementsByTagName('id').firstChild.data);
}
}
}
--------------------------------

А на мен ми трябва да взима и от двете...
и да се получи -->
--------------------------------
var Cat = Form.selCat.options[Form.selCat.options.selectedIndex].value
var SubCat = Form.selSubCat.options[Form.selSubCat.options.selectedIndex].value

var url="./show.php";
url=url+"?method=getHTML&param="+Cat;
url=url+"&cid="+SubCat;
xmlhttp.open("GET",url,true);
xmlhttp.send();
--------------------------------

Междо другото и грешки ми дава


23 и 24 ред са

var Cat = Form.selCat.options[Form.selCat.options.selectedIndex].value
var SubCat = Form.selSubCat.options[Form.selSubCat.options.selectedIndex].value

а някой знае ли защо се появяват тези предопреждения които сам оградил с синьо? Използвам "Web Developer Toolbar" да не е от него?
защото на всаки сайт го дава това..

Ето я и формата ---

<form name="Form">
<tr>
<th width="50%" height="28" scope="col"><select name="selCat" class="text" onChange="javascript:Ajax.Request('./show.php?method=getXML&param=',this.value, Ajax.Response); alert(this.options[this.selectedIndex].value);"><? echo $option; ?></select></th>
<th width="50%"><select name="selSubCat" id="selSubCat" class="text" onChange="info(this.options[selectedIndex].value);"><option value="0">--Price--</option></select></th>
</tr>
</form>
 

Back
Горе