Javascript + Ajax Request[REZOLVAT]

Discutii legate de AJAX, jQuery, MooTools, Prototype, Dojo, Yahoo! UI Library,script.aculo.us, ExtJS,AngularJS, Backbone.js, Ember.js, KnockoutJS

Moderator: Moderatori

MihaiA
Average Member
Mesaje: 184
Membru din: Lun Aug 25, 2008 5:33 pm

Javascript + Ajax Request[REZOLVAT]

Mesajde MihaiA » Mie Mar 04, 2009 10:21 pm

Buna seara,

Am o intrebare in legatura cu o problema peste care dau cand fac un script php.Am o functie javascript ce foloseste ajax.

Cod: Selectaţi tot

<script type="text/javascript" language="JavaScript">
// Aici este cod JavaScript;

function changedState()
{
   var skill = document.getElementsByName("skill").value;
   var id = document.getElementsByName("id").value;
   if(xmlHttp.readyState==4)
   {
      document.getElementById("mission_result").innerHTML=xmlHttp.responseText + "skill = " + skill + "id = " + id ;
   }
}

function check_mission()
{
   var skill= document.getElementById("skill").value;
     var id= document.getElementById("id").value;
    var str = 'm='+ skill +'&id='+ id;
    xmlHttp=browserValidator();
    if(xmlHttp==null)
    {
        alert('Browserul dumneavoastra nu suporta aceasta aplicatie, va rugam instalati o versiune compatibila. (Exemplu: Firefox)');
        return;
    }
    var url="validate_m.php";
    xmlHttp.onreadystatechange=changedState;
    xmlHttp.open("POST",url,true);
    xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
    xmlHttp.setRequestHeader("Content-Length", str.length);
    xmlHttp.setRequestHeader("Connection", "close");
    xmlHttp.send(str);
}

function browserValidator()
{
   var xmlHttp;
   try
   {
      // Numai pentru browserele Firefox, Opera 8.0+, Safari;
      xmlHttp=new XMLHttpRequest();
   }
   catch(e)
   {
      try
      {
         // Numai pentru browserul Internet Explorer;
         xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch(e)
      {
         try
         {
            // Alte browsere.
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
         }
         catch(e)
         {
            // Eroare daca browserul nu este compatibil cu aplicatie.
            alert('Browserul dumneavoastra nu suporta aceasta aplicatie, va rugam instalati o versiune compatibila. (Exemplu: Firefox)');
            return false;
         }
      }
   }
   return xmlHttp;
}
</SCRIPT>

+ codul

Cod: Selectaţi tot

 <table cellpadding="0" cellspacing="0" border="1" bordercolor="#000000">
  <tr>
   <td>Number</td><td>Description</td><td>Xp Given</td><td>Validate</td></tr>
   <? if ($p['mission1_done'] == 0){?>
   <Tr>
   <Td>1.</td><td> Account Activation </td><td> 50 xp points</td><td><?if ($p['mission1_done'] == 0){?><a href="validate_m.php?m=1">VALIDATE</a><? } else {?>COMPLETED<?}?><input type="hidden" name="skill" value="1"><input type="hidden" name="id" value="1"></td></tr>
   </table>
   <a href="#" onClick="check_mission();">Check Mission</a><div id="mission_result"></div>

Problema este cand apas check_mission ar trebuii sa imi execute in ajax validate_m.php?m=1&id=1.
Codul pt validate_m.php este urmatorul :

Cod: Selectaţi tot

<?php
include('common.php');

$do = $_GET['m'];
$id = $_GET['id'];
switch($do) {
    case '1':
     
   $mis = "mission".$do."_done";
   $valid = $p[$mis];
   if ($valid == 0)
     {
      if ($p['este_activat'] == 1){
                           
                           mysql_query("UPDATE `user` set `".$mis."` = 1 where `id` = '".$id."' LIMIT 1;");
                           mysql_query("UPDATE `user` set `experience` = `experience` + 50 where `id` = '".$id."' LIMIT 1;");
                           echo " Mission Validated";
                                   }
      }
    else {echo"Ai facut deja misiunea";}
      
    break;
    default:
      echo"id-ul este $id si skill-ul $do";
   break;
}
?>
Cand apas pe buton imi apare urmatorul mesaj "id-ul este si skill-ul skill = undefined id = undefined".Unde gresesc de nu imi ia valorile din <input type="hidden" name="skill" id="skill" value="1"> respectiv <input type="hidden" name="id" id="id" value="1">. Daca aveti vreo idee referitor la o posibila solutie fiindca eu sincer nu stiu ce sa ii mai fac. Multumesc.
Ultima oară modificat Joi Mar 05, 2009 11:55 pm de către MihaiA, modificat 1 dată în total.



MarPlo
Senior Member
Mesaje: 885
Membru din: Mie Sep 24, 2008 9:32 am
Localitate: Braila
Contact:

Mesajde MarPlo » Joi Mar 05, 2009 10:40 am

Pai in ajax ai:


var url="validate_m.php";
xmlHttp.onreadystatechange=changedState;
xmlHttp.open("POST",url,true);

pune un url cu validate_m.php?m=val1&id=val2
val1 si val2 pot fi preluate din variabile
si inlocueste POST cu GET

Avatar utilizator
mihaitha
Senior Member
Mesaje: 2383
Membru din: Vin Mai 04, 2007 12:40 pm
Localitate: Sibiu
Contact:

Mesajde mihaitha » Joi Mar 05, 2009 12:14 pm

[offtopic]
MarPlo, daca nu stii, mai bine taci. Sau da-i un link spre unul din tutorialele alea pe care le-ai scris tu pe toate. Vad ce bun esti din raspunsurile pe care le dai.
[/offtopic]

MihaiA, problema ta e ca faci un request AJAX prin POST dar in validate_m.php lucrezi cu $_GET. Schimba $_GET in $_POST din validate_m si ar trebui sa mearga.

MihaiA
Average Member
Mesaje: 184
Membru din: Lun Aug 25, 2008 5:33 pm

Mesajde MihaiA » Joi Mar 05, 2009 11:55 pm

Multumesc pentru raspunsurile primite , am reusit facand schimbarile ce mi le-a dat mihaitha.


Înapoi la “Librarii Javascript”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 12 vizitatori