2010-09-30 8 views
0

cher tout, je reçois ce problème avec firefox et pas avec IE.problème ajax dans firefox lors de la récupération <select name = 'valeur'> valeur

En premier combo, je reçois des rôles:

<tr> 
<td>Select Role:</td> 
<td> 
<select name="usrrole" onChange="showuser(this.value)"> 
    <option value=''>Please Select</option> 
<?php 
    $rle = "select * from role_table"; 
    $dorle = mysql_query($rle); 
    while($data = mysql_fetch_array($dorle)){ 
    echo ("<option value=$data[roleid]>$data[rolename]</option>"); 
} 
?> 
</select> 
</td> 
</tr> 

<tr> 
    <td> Select User </td> 
    <td id="showus"> </td> <!-- this is the div collected from ajax --> 
</tr> 
<tr> 
    <td colspan=2> <input type='submit' name='submit' /> </td> 
</tr> 

((((AJAX.JS))))

function GetXmlHttpObject() 
{ 
var xmlHttp=null; 
try 
    { 
     xmlHttp=new XMLHttpRequest(); 
    } 
catch (e) 
    { 
     try 
     { 
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); 
     } 
     catch (e) 
     { 
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
    } 
return xmlHttp; 
} 

function showusrinfo() 
{ 
if (xmlhttp.readyState==4 || xmlhttp.readyState=="complete") 
{ 
    document.getElementById('showus').innerHTML=xmlhttp.responseText; 
} 
} 

function showuser(str) 
{ 
    xmlhttp=GetXmlHttpObject(); 
    var url="../get.php"; 
    url=url+"?showus="+str;  
    xmlhttp.onreadystatechange=showusrinfo; 
    xmlhttp.open("GET",url,true); 
    xmlhttp.send(null); 
} 

((((get.php))))

if(isset($_GET["showus"])){ 
$q = $_GET["showus"]; 
$sql = "select uid,username from usertable where roleid='".$q."'"; 
$qry = mysql_query($sql); 
$num = mysql_num_rows($qry); 
if($num){ 
    $my = "<select name='touser'>"; 
    $my .= "<option selected value=''>Please Select</option>"; 
    while($result = mysql_fetch_array($qry)){ 
     $my .= "<option value='".$result['uid']."'>$result[username]</option>"; 
} 
echo $my; 
} 
else 
{ 
$notmy = "No Record"; 
} 
echo $notmy; 
} 

maintenant, le problème se pose quand je le soumets:

si i imprimer les variables après soumettre, puis

dans INTERNET EXPLORER:

Array 
(
    [usrrole] => 1 
    [touser] => 3 
    [submit] => submit 
) 

et FIREFOX:

Array 
(
[usrrole] => 1 
[submit] => submit 
) 

Comme vous pouvez le voir, la variable générée en AJAX est montré dans IE et non dans FF, il y a donc une erreur d'exécution du code dans FF. Je suis un débutant en programmation et coincé dedans, aidez-moi s'il vous plaît.

acclame.

+0

d'injection SQL, javascript non déclaré variables, xss possibles, HTML invalide. * soupir * Laissez-moi l'analyser. – Lekensteyn

Répondre

0

Vous devriez lire la valeur de l'option sélectionnée, pas sélectionner la valeur

onChange="showuser(this.options[this.selectedIndex])" 
+0

Non, le showuser doit avoir un roleID, pas le roleName: 'showuser (this.value)' -> 'url = url +"? Showus = "+ str;' -> '$ q = $ _GET [" showus "] ; '->' ... roleid = '". $ q."' ";' – Lekensteyn

+0

Note: Je peux utiliser ajax dans FF, mais je ne peux pas reproduire les valeurs POST – deepak

0

oui, c'est vrai, j'ai besoin de la production en termes de RoleId et non par nom

+0

en attente d'une réponse rapide .. mon programme est tenu jusque-là. – dEePaK

Questions connexes