2012-03-22 2 views
0

Après avoir regardé plusieurs questions/réponses ici, je ne vois pas ce dont je pense avoir besoin. J'ai une page postée sur une page de serveur asp via ajax. La chaîne json retournée apparaît dans la console sur Firefox. Je peux voir les données de poste allant à la page asp, je peux voir la réponse qui estAnalyse des données JSON à partir du serveur ASP classique?

{"prénom": "Christopher", "nom": "Romero", "email": "[email protected] "," adminlvl ":" 00 "," message ":" Merci de vous être connecté! " }

Je peux également voir les valeurs de la chaîne ci-dessus dans l'onglet JSON dans Console -> ALL -> JSON. Aucune erreur n'est signalée dans la console. Voici mon javascript:

$('#loginsub').click(function() { 
$.ajax({ 
     url: "logincheck.asp", 
     type: "POST", 
     data: $('#loginform').serialize(), 
     dataType: "json", 
     success: function(data) { 
      console.log(data); 
      //alert(data.firstname + ' ' + data.lastname); 
      //alert(data[0].firstname + ' ' + data[0].lastname);  
      $.trim(data); 
      var json = $.parseJSON(data); 
      alert(json.firstname); 
     } 
}); 

    }); 

Voici l'aspic qui est en cours d'exécution sur le serveur sur logincheck.asp:

set cmd = Server.CreateObject("ADODB.Command") 
with cmd 
    .ActiveConnection = cnnopen 
    .CommandText = storedproc 
    .CommandType = adCmdStoredProc 

    dim intCount,intItem 
    for each item in odcformdata 

     select case vartype(odcformdata(item)) 'this is searching for the correct data type to put into the parameter [type] argument below. (integers, currency, dates, & strings) 
      case 2 : .Parameters.Append .CreateParameter("@"&cstr(item),adInteger,adParamInput,len(odcformdata(item)),odcformdata(item)) 
      case 6 : .Parameters.Append .CreateParameter("@"&cstr(item),adCurrency,adParamInput,len(odcformdata(item)),odcformdata(item)) 
      case 7 : .Parameters.Append .CreateParameter("@"&cstr(item),adDate,adParamInput,len(odcformdata(item)),odcformdata(item)) 
      case 8 : .Parameters.Append .CreateParameter("@"&cstr(item),adVarChar,adParamInput,len(odcformdata(item)),odcformdata(item)) 
     end select 
    next 

end with 

set rs = cmd.execute 
    'do stuff with returned results from select or leave blank if insert/delete/etc stored procedure 

    if rs.EOF = false then 
     'Build json array based on fields returned from stored proc. 
     dim arrJSON 
     arrJSON = "{ " 
     while not rs.EOF 
      for each fields in rs.Fields 
       arrJSON = arrJSON & """" & fields.name & """: """ & fields & """," 
      next 
      rs.movenext 
     wend 
     arrJSON = arrJSON & """message"": ""Thanks for logging in!""," 
     arrJSON = left(arrJSON, len(arrJSON)-1) & " }" 
     response.write arrJSON 
    end if 

set rs = nothing 
set cmd = nothing 

odcformdata.removeall 

Les alertes() dans le javascript ne sont pas des valeurs de retour que j'attendre, J'obtiens [object Object] retournant sur l'alerte quand je m'attends à ce que le tableau/chaîne JSON soit imprimé.

Quelqu'un avec quelques conseils pour moi? Je suis une recrue jquery et je m'améliore, mais ça m'énerve!

+0

jQuery va analyser le JSON pour vous. Autrement dit, le paramètre data doit déjà être un objet et la première alerte (commentée) devrait fonctionner. Vous ne devriez pas avoir besoin d'appeler $ .parseJSON(). – nnnnnn

+0

Quelle est la sortie si vous faites console.log (json) au lieu de alert (json.firstname)? – Tuan

Répondre

0

Que montre votre premier console.log(data)?

Cela fonctionne pour moi: http://jsfiddle.net/2tvCf/

+0

le console.log me montre: {"prénom": "Christopher", "nom de famille": "Romero", "email": "[email protected]", "adminlvl": "00", "message": " Merci de vous être connecté! " } – digitalcb

+0

Je pense que le fait même que quelqu'un l'ait regardé l'a fait fonctionner ... un peu comme les électrons étant à deux endroits à la fois quand on les observe en physique quantique. lol je décommentais la première alerte de test que j'avais mis là et il s'est montré très bien. avant qu'il ne montre [objet objet] dans la boîte d'alerte. Merci pour l'aide ... J'apprécie vraiment le look! – digitalcb

Questions connexes