2010-11-04 9 views
0

Je suis sûr que je fais beaucoup de mal ici, mais spécifiquement j'essaye de tirer quelques informations d'un formulaire et de le combiner dans une URL que je peux ensuite. Load() :utiliser Jquery .load() avec une variable

$(document).ready(function() { 

    origin = $('#origin').val(); 
    destination = $('#destination').val(); 
    weekDay = $('#weekday').val(); 
    fullSchedule = origin+'_'+destination+'_'+weekDay+'.html'; 

    $("#scheduleform :submit").click(function() {   
     $('#schedule').load(fullSchedule);   
     alert(fullSchedule); 
    }); 
}); 

Je peux alerter l'URL complète mais je ne peux pas sembler l'obtenir pour charger dans la div (avec l'identifiant de l'annexe). Je suis en train de bousculer ensemble la petite jquery que je connais pour faire ceci, donc je suis sûr que c'est en désordre, mais je ne suis pas sûr pourquoi il alerterait correctement mais ne chargerait pas la div.

+1

On peut supposer que vous avez vérifié que 'fullSchedule' renvoie une URL valide (et est sur le même domaine ** ** que la page en cours d'exécution du script)? Avez-vous essayé le '$ ('# scheduleform'). Submit (/*...*/)' au lieu du 'click()'? –

+0

Donc le HTML dans l'alerte est correct mais il n'est pas en train d'être chargé dans votre div #schedule? Êtes-vous sûr que votre #schedule est correctement défini dans votre HTML (peut-être une faute de frappe?) – Gazillion

+0

Oui, sur le même domaine (dans le même répertoire) et c'est une URL valide, mais je pense que je me suis un problème en utilisant click() au lieu de soumettre. Essayer l'approche de soumission maintenant. –

Répondre

5

Si vous avez Firebug, pouvez-vous vérifier que la requête va au serveur et que vous obtenez une réponse? Essayer aussi de mettre un rappel à load pour voir si la charge termine avec succès:

$('#schedule').load(fullSchedule, function(responseText, textStatus, XMLHttpRequest) { 
    alert("Load result: " + responseText + " " + textStatus); 
}); 

Quelques autres:

  • est l'URL d'une URL valide?
  • Est-ce que c'est sur le même domaine?

J'ai remarqué une autre chose. Y at-il une raison pour laquelle vous utilisez click() au lieu de submit()? Alors:

$("#scheduleform").submit(function() { 
    ... 
    return false; //You probably don't want the page to actually submit and reload 
}); 

Une autre façon de contourner l'ensemble des affaires est présenter simplement d'utiliser un bouton standard qui n'est pas un bouton de soumission, et de se lier à elle click (en fonction de ce que vous faites en réalité bien sûr - Je ne sais pas si vous voulez réellement soumettre quoi que ce soit).

+0

Donner une photo maintenant.Merci –

+0

Désolé pour votre temps à répondre à cette question.Le chargement du texte de réponse m'a aidé à trouver un En utilisant submit() au lieu de click(), en ajoutant le résultat false, et en corrigeant une erreur d'orthographe que j'ai détectée avec le responseText, j'ai résolu mon problème Merci beaucoup –

+0

Eh bien, * prochaine fois je vais ** réponse ** au lieu de ** commentaire ** =) +1 –

1

Êtes-vous sûr que le formulaire n'est pas soumis et donc rechargé? vous devez arrêter l'action par défaut avec preventDefault()

$("#scheduleform :submit").click(function(e) { 
    e.preventDefault();   
    $('#schedule').load(fullSchedule); 
});