Bonjour à tous,

J'aurais besoin de votre aide pour une mise à jour de base de données avec Ajax. Le but est que l'utilisateur entre dans un champ input une valeur pour le score d'un match et que celui-ci soit mis à jour en base sans rafraichissement de la page. J'ai fait le tour des forums, de la doc jquery mais impossible de trouver l'erreur..

vue :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
49
50
51
52
 
    <script>
 
                function updateResult(score, game_id, team_id)
                {
                //alert("score : " + score + ", game_id : " + game_id + ", team_id : " + team_id);
 
                    //var ok = true;
                    //***************************************************************************************
                    var path = "{{ path('basket_admin_tournament_update') }}";
                    var request = $.ajax({
                        type: "POST",
                        url : path,
                        data: {'score': score, 'game_id': game_id, 'team_id': team_id},
                        success: function(data){
                            alert("ok");
                        },
                        error: function(XMLHttpRequest, textStatus, errorThrown) {
                            alert(errorThrown);
                        }
                    });
                    //	alert(request);
 
                    //alert(ok);
                    //***************************************************************************************
 
                    //return ok;
                }
 
    </script>
 
    <h3>Planning</h3>
    {% for step in tournament.Steps %}
        <p>{{ step.name }}</p>
        {% if step.name == "Poule" %}
            {% for pool in step.pools %}
                <p>{{ pool.name }}</p>
                {% for game in step.games %}
                    {% if (game.team1 in pool.teams) or (game.team2 in pool.teams) %}
                        <p>{{ game.dateGame|date('h:m:s') }} : {{ game.team1.name }} <input type="text" onblur="updateResult(this.value, {{ game.id }}, {{ game.team1.id }})"> - <input type="text" onblur="updateResult(this.value, {{ game.id }}, {{ game.team2.id }})"> {{ game.team2.name }}</p>
                        {% endif %}
                    {% endfor %}
                {% endfor %}
            {% else %}
                {% for game in step.games %}
                <p>{{ game.team1.name }} - {{ game.team2.name }}</p>
            {% endfor %}
        {% endif %}
        {#% for pool in step.pools %}
            <p>{{ pool.name }}</p>
        {% endfor %#}
    {% endfor %}
controller :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
    public function updateAction($score, $game_id, $team_id) {
	/*$em = $this->getDoctrine()->getManager('tournament');
 
        $tournament = $em
                ->getRepository('BasketTournamentBundle:Game')
                ->updateTeam1Game($score, $game_id, $team_id);
 
	$tournament->execute();
	*/
	echo 'OK';
    }
routing :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
basket_admin_tournament_update:
    path:     /update
    defaults: { _controller: BasketTournamentBundle:Tournament:update }
Je tombe toujours dans "error" ...
Qui s'y connait assez en jquery/ajax/sf2 ?