Page 1 of 1

urgent javascript help

Posted: Thu Nov 12, 2009 9:21 am
by sandip123
===================[ URGENT ]=================
confirm_state is not working properly..as it uses sajax..it is supposed to get the value of the state ..but the state being a string not working...please help..
........................urgent.........


<?
function search_states($str)
{
//print $str;
//print "<br><pre>";
$number=explode('-',$str);

//print_r($number);
//print $number[0];
if(count($number)==1)
{
$table='states';
$data=array('*'=>'');
$fldarray=array("state"=>$number[0]);
$val=dataSelectSearch($table,$data,$fldarray,$extra,$orderArray,$orderType);

// print "<pre>";
// print_r($val);

for($i=0;$i<count($val);$i++)
{
$state_name=$state_name."##".$val[$i]['state'];
}
return $state_name;
}
else
{
$strt_val=ord($number[0]); // Ascii of first character
$end_val=ord($number[1]); // Ascii of last character
//print chr($end_val);

for($j=$strt_val;$j<=$end_val;$j++)
{
$table='states';
$data=array('*'=>'');
$fldarray=array("state"=>chr($j));
$val=dataSelectSearch($table,$data,$fldarray,$extra,$orderArray,$orderType);

for($m=0;$m<count($val);$m++)
{
$state_name=$state_name."##".$val[$m]['state'];
}
}
return $state_name;


}

}

?>
<script>

function confirm_state1(msg)
{
// =============================== [subcategory follows ] =========================

//alert(msg);
var value=msg;
var arr=Array();
arr=value.split("##");



for(i=1;i<=(arr.length-1);i++)
{
//var new_val;


//alert(i);

//var int=Integer.valueOf(arr);
document.getElementById('innercontent').innerHTML=document.getElementById('innercontent').innerHTML+"<br>&nbsp;&nbsp; <a href='javascript:void(0);' onclick='document.getElementById(state_name).value="+arr+";' class='small_link1'>"+arr+"</a>";
//document.getElementById('all_state').innerHTML='';
//alert(document.getElementById('innercontent').innerHTML);



}

}

function showname(val)
{
//alert(msg1);
alert(val);
document.getElementById('state_name').value=val;
document.getElementById('all_state').style.display='none';

}

function findstate(str)
{
//alert(str);
document.getElementById('innercontent').innerHTML='';
document.getElementById('all_state').style.display='inline';
var str1=str;
x_search_states(str1,confirm_state1);
}



</script>

Re: urgent javascript help

Posted: Sun Nov 22, 2009 4:39 am
by kaszu
You need to escape value, because

Code: Select all

"<br>&nbsp;&nbsp; <a href='javascript&#058;void(0);' onclick='document.getElementById(state_name).value="+arr[i]+";' class='small_link1'>"+arr[i]+"</a>"
with value "something" will become

Code: Select all

<br>&nbsp;&nbsp; <a href='javascript&#058;void(0);' onclick='document.getElementById(state_name).value=something;' class='small_link1'>something</a>

Code: Select all

document.getElementById(state_name).value=something;
which is incorrect, because "something" is variable, not value.

You need to escape the value and add quotes around it (following code doesn't escape value, added only quotes).

Code: Select all

"<br>&nbsp;&nbsp; <a href='javascript&#058;void(0);' onclick='document.getElementById(state_name).value=\""+arr[i]+"\";' class='small_link1'>"+arr[i]+"</a>"
 
Please use

Code: Select all

tags next time when posting code.