Jump to content
MrFilipe

Passar 2 parâmetros em AJAX

Recommended Posts

MrFilipe

Boas Pessoal,

Gostaria que me indicassem como coloco o código de modo a que possa enviar dois parâmetros...

Código:

//Ajax
function showUser(str)
{
if (str=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","DLista_prof.php?q="+str,true);
xmlhttp.send();
}

Do pouco que entendo do código, consegui perceber que o parâmetro é enviado aqui

xmlhttp.open("GET","DLista_prof.php?q="+str,true);

Agora gostaria de saber como posso levar dois parâmetros??


Abraço.

Share this post


Link to post
Share on other sites
MrFilipe

Pensei que o meu problema estava por nao enviar dois parâmetros, mas acho que estava errado.

o código que alterei com a sugestão do yoda, ficou assim:

//Ajax
function showUser(str1, str2)
{
if (str1=="", str2=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","DLista_prof.php?q1="+str1+"&q2="+str2,true);
xmlhttp.send();
}

Ora bem, mas penso que o segundo parâmetro não esta a levar nenhum valor...

Porque fiz

echo $q2

na script (DLista_prof.php) e aparece undefined...

O código que esta abaixo desta script é o seguinte, onde os dados para ser escolhidos aparecem numa listbox.

<form>
      <p>
        <label for="ListaProf4"></label>
        <select name="ListaProf" id="ListaProf4" onchange="showUser(this.value)">
        <option value="">Seleccionar:</option>
          <?php
do {  
?>
        <option value="<?php echo $row_Record_Prof['professorID']?>"><?php echo $row_Record_Prof['Nome']?></option>
          <?php
} while ($row_Record_Prof = mysql_fetch_assoc($Record_Prof));
  $rows = mysql_num_rows($Record_Prof);
  if($rows > 0) {
      mysql_data_seek($Record_Prof, 0);
  $row_Record_Prof = mysql_fetch_assoc($Record_Prof);
  }
?>
        </select>
      </p>
</form>

Ora bem esta variavel $q1 leva o valor de

<option value="<?php echo $row_Record_Prof['professorID']?>">

, daí qe pensei que era por causa disto que $q2 não aparecia com valor, gostaria de saber de que maneira da para colocar $q2 a receber também valores???

Ora bem eu criei $q2 para que na script aparecesse o ID e o Nome... Porque na script existe uma tabela que é alimentada com a escolha na listbox, mas o problema é que na parte em que devia aparecer o Nome aparece o ID...

Deixo abaixo o código da script...

<?php
$q1=$_GET["q1"];
$q2=$_GET["q2"];
ECHO $q2;

$con = mysql_connect('localhost', 'root', '');
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("reservaes", $con);

$sql="SELECT * FROM professor WHERE professorID = '".$q1."'";

$result = mysql_query($sql);

echo "<table border='1'>
<tr>
<td width='177'><strong>Professor</strong></td>
<td width='146'><strong>Nome</strong></td>
<td width='84'><strong>Reservar Sala</strong></td>
<td width='84'><strong>Reservas Efectuadas</strong></td>
</tr>";

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" .$row['professorID']. "</td>";
  echo "<td>" .$row['Nome']."</td>";
  echo "<td><a href='turmasprof.php?profID=" .$row['professorID']." '>Reservar</a></td>";
  echo "<td><a href='MHistoricoRes.php?profID=" .$row['professorID']. "'>Consultar</a></td>";
  echo "</tr>";
  }
echo "</table>";

mysql_close($con);
?>

 echo "<td>" .$row['Nome']."</td>";

foi por este motivo que creie $q2 para aparecer o nome, porque substitui automaticamente pelo id, ou seja, pelo $q1.

Desculpem o post ser um pouco extenso.

Mas penso que só assim é que é possivel me ajudarem...


Abraço.

Share this post


Link to post
Share on other sites
MrFilipe

Pessoal, já consegui solucionar o problema...

Obrigado a mesma, mais particularmente ao yoda. ;)


Abraço.

Share this post


Link to post
Share on other sites
MrFilipe

Exacto tens toda a razão, só tinha apenas uma coisa mal escrita....

Mas obrigado contudo.


Abraço.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.