Problème Ajax lors d'une recherche
Bonjour à tous,
J'ai suivi le tutoriel de Jerôme Place afin d'améliorer ma photothèque sous Symfony2. J'ai donc voulu faire un moteur de recherche afin de pouvoir rechercher les photos par leurs noms dans un premier temps.
Mon problème se situe dans le javascript de mon template twig:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
{% extends 'FrontendPhotothequeBundle::layout.html.twig' %}
{% block title %}Rechercher des photos{% endblock %}
{% block content %}
<form id="form_recherche" action="{{ path('FrontendPhotothequeBundle_photo_rechercher') }}" method="post">
{{ form_widget(form) }}
<input type="submit" value="Rechercher" />
</form>
<div class="loading" style="margin: 0 auto;"></div>
<div id="liste_photo">
<div class="nb_results">
{% if nb_photos == 1 %}
{{ nb_photos }} résultat
{% else %}
{{ nb_photos }} résultats
{% endif %}
</div>
{% include 'FrontendPhotothequeBundle:Photo:liste.html.twig' with {'photos' : photos} %}
</div>
<div class="add-btn">
<a href="{{ path('FrontendPhotothequeBundle_photo_ajouter') }}"><img src="{{ asset('bundles/frontendphototheque/images/add.png') }}" width="32" height="32" />Ajouter une photo</a>
</div>
<script>
$(".loading").hide();
$("#form_recherche").submit(function(){
$(".loading").show();
var nomphoto = $("#photorecherche_nomphoto").val();
//var url_target = {{ path('FrontendPhotothequeBundle_photo_rechercher') }};
var url_target = $("#form_recherche").attr("action");
alert(url_target);
var data_form = 'nomphoto=' + nomphoto;
$.ajax({
type: "POST",
url: url_target,
data: data_form,
cache: false,
success: function(data){
$('#liste_photo').html(data);
$(".loading").hide();
}
});
return false;
});
</script>
{% endblock %} |
Le problème se situe au niveau de la variable url_target. Il y a 2 cas de figure :
- le 1er cas :
Code:
var url_target = {{ path('FrontendPhotothequeBundle_photo_rechercher') }};
Lorsque j'essaye avec cette valeur le traitement s'arrête au niveau de cette variable et j'ai l'erreur suivante dans Firebug
"SyntaxError: invalid regular expression flag f
var url_target = /app_dev.php/frontend/photo/rechercher;"
avec une flêche qui pointe sur le f de frontend.
Par contre le formulaire est quand même envoyé puisque je me retrouve sur la page http://phototheque_v2/app_dev.php/fr...oto/rechercher.
- le 2ème cas :
Code:
var url_target = $("#form_recherche").attr("action");
Dans ce cas-ci, j'ai l'erreur 500 suivante dans Firebug "
POST http://phototheque_v2/app_dev.php/fr...oto/rechercher 500 Internal Server Error" et ça pointe vers la ligne jQuery suivante :"
xhr.send( ( s.hasContent && s.data ) || null );"
Et là le formulaire n'est pas envoyé.
J'ai cherché toute la journée d'hier sans succès :(
Merci d'avance à ceux qui essaieront de m'aider ;)
[EDIT]
Pour le 1er cas avec l'erreur du flag c'est juste qu'il manque les "" autour du path.
Maintenant j'ai juste une erreur 500 dans les 2 cas...
[EDIT 2]
En fait le problème venait de la variable pagerfanta (pour la pagination) que je ne passais pas à ma vue liste.html.twig dans mon controller.
problème résolu !