2009-05-08 7 views
2
//post data 
function SubmitForm(method) 
{ 
var login = document.form.login.value; 
var password = document.form.password.value; 
$.post("../content/backend.php", { login: login,password: password,method: method}); 
} 

En essayant de publier des données en utilisant l'appel ci-dessus. Dans firefox firebug clignote une erreur mais dose ne me donne pas le temps d'évaluer la seule chose que je peux voir est un point d'erreur à jquery qui se rapporte au code suivant.Problème de publication Jquery

// Send the data 
    try { 
     xhr.send(s.data); 
    } catch(e) { 
     jQuery.handleError(s, xhr, null, e); 
    } 

Quelqu'un sait pourquoi cela se produit? Page entière affichée ci-dessous

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta content="yes" name="apple-mobile-web-app-capable" /> 
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type" /> 
<link href="../pics/homescreen.png" rel="apple-touch-icon" /> 
<meta content="minimum-scale=1.0, width=device-width, maximum-scale=0.6667, user-scalable=no" name="viewport" /> 
<link href="../css/style.css" rel="stylesheet" type="text/css" /> 
<script src="../javascript/functions.js" type="text/javascript"></script> 
<script type="text/javascript" src="../includes/jquery.js"></script> 

<script type="text/javascript"> 
function SubmitForm(method) 
{ 
var login = document.form.login.value; 
var password = document.form.password.value; 
$.post("../content/backend.php", { login: login,password: password,method: method}); 
} 
</script> 
<title>Login</title> 
</head> 
<body> 
<div id="topbar"> 
<div id="leftnav"> 
<a href="../index.php"><img alt="home" src="../images/home.png" /></a>  </div> 
</div> 
<div id="title">Login</div> 
</div> 
<div id="content"> 
<span class="graytitle">Login</span> 
<ul class="pageitem"> 
<form name="form" method="post" action="#"> 
<li class="form"><input placeholder="Username" type="text" id="login"/></li> 
<li class="form"><input placeholder="Password" type="password" id="password"/></li> 
<li class="form"><button onClick="SubmitForm('login')" name="button">Login</button></li> 
</ul> 
</form> 
</div> 
<div id="footer"></div> 
</body> 
</html> 

Répondre

4

Votre fonction submit doit renvoyer false pour arrêter la propagation d'événement.

function SubmitForm(method) 
{ 
var login = document.form.login.value; 
var password = document.form.password.value; 
try { 
    $.post("../content/backend.php", { login: login,password: password,method: method}); 
} catch(e) { 
    alert(e); 
} 
return false 
} 

Pour empêcher l'appel du gestionnaire pair par défaut.

Enveloppez également l'appel dans un try/catch pour faciliter le débogage. Il est difficile pour nous de déboguer le code puisque nous n'avons pas le script appelé.

+0

Pouvez-vous ajouter un peu de journalisation dans votre fichier PHP pour voir si le fichier est effectivement atteint? J'aime la suggestion de @ Nadia d'utiliser un bloc try/catch autour de votre $ .post, cependant, le formulaire ne sera pas soumis car @jason n'utilise pas de bouton submit, plutôt un bouton normal avec un onclick. J'ajouterais aussi les méthodes .error et .success au $ .post() ... par exemple. $ .post(). error (function() {alert ('erreur ici')}); –

0

au lieu de

"../content/backend.php" 

essayer cette

"/yourrootfolder/content/backend.php"