我真的不明白。我一定是个愚蠢的错误,但不可能知道在哪里。
我的控制器中有这个方法:
public function saveVote($user, $restaurantId, $date)
{
// Récupération du restaurant
$restaurant = $this->restaurantsRepository->find($restaurantId);
// Récupération du vote
//$vote = $this->votesRepository->findOneBy(array('votDate' => $date, 'votUsrLogin' => $user, 'votRestId' => $restaurant));
// Calcul du poid
$userVotes = $this->getVotesByUserAndDate($user, $date);
$nbUserVotes = count($userVotes) > 5 ? 5 : count($userVotes);
$vote = new Votes();
$vote->setVotDate($date);
$time = idate("U");
// $hour = idate("H");
// $minute = idate("i");
// $second = idate("s");
// $vote->setVotHour($hour . $minute . $second);
$vote->setVotHour($time);
$vote->setVotRestId($restaurant);
$vote->setVotUsrLogin($user);
// Redéfinition du poid
if($user->isBirthday()){
$vote->setVotPoid(1 - ($nbUserVotes * 0.1 * 5));
}else{
$vote->setVotPoid(1 - ($nbUserVotes * 0.1));
}
$this->em->persist($vote);
$this->em->flush();
// Redéfinition du poid des restaurants déjà votés
//$this->setVotesPoid($userVotes, $elements);
}
当我添加" if"在最后 - 我检查生日 - 表单没有做任何事情,但是当我删除它时它发送没有问题。
以下是表格:
{% extends "::base.html.twig" %}
{% block stylesheets %}
{{ parent() }}
{% stylesheets
'bundles/intranet/css/draggable.css'
filter='cssrewrite' %}
<link rel="stylesheet" href="{{ asset_url }}"/>
{% endstylesheets %}
{% endblock %}
{% block content %}
<div id="sf_admin_container">
<div class="titreBleuFonce">Allons-manger</div>
<div id="sf_admin_content">
{% if is_granted('ROLE_ADMIN') %}
<div><span id="clear-past-votes" onclick="return clickDeletePast(event);"><img
src="{{ asset('bundles/intranet/images/commun/delete.png') }}" alt="Trash"/>Vider l'historique des votes passés</span>
</div>
{% endif %}
<div class="liste-restaurants-wrapper bandeau">
<h4>Restaurants disponibles : </h4>
<div id="liste-restaurants" class="liste-draggable" ondragover="return dragOver(event);"
ondrop="return drop(event);" ondragleave="return dragLeave(event)"
ondragenter="return dragEnter(event);">
{% for restaurant in restaurants %}
<a draggable="true" id="{{ restaurant.restId }}" ondragstart="dragStart(event);" href="#">
<p>{{ restaurant.restLibelle }}</p>
<span>{% if not restaurant.restCategorie is null %}{{ restaurant.restCategorie.catRestLibelle }}{% endif %}</span>
</a>
{% endfor %}
</div>
</div>
<img class="dragndrop" src="{{ asset('bundles/intranet/images/commun/arrow-drag-n-drop.png') }}"
style="float: left; "/>
<div class="liste-votes-wrapper bandeau">
<h4>
Vote personnel : <img id="clear-votes" onclick=" return clickDelete(event);"
{% if votes|length == 0 %}class="hidden"{% endif %}
src="{{ asset('bundles/intranet/images/commun/delete.png') }}"
title="Suppression des votes"/>
</h4>
<div id="liste-votes" class="liste-draggable" ondragover="return dragOver(event);"
ondrop="return drop(event);" ondragleave="return dragLeave(event)"
ondragenter="return dragEnter(event);">
{% for vote in votes %}
<a draggable="true" id="{{ vote.votRestId.restId }}" ondragstart="dragStart(event);" href="#">
<p>{{ vote.votRestId.restLibelle }}</p>
<span>{{ vote.votRestId.restCategorie.catRestLibelle }}</span>
</a>
{% endfor %}
</div>
</div>
<div class="bandeau">
Les restaurants de la semaine :
<ul>
{% for restaurant in historique %}
<li>{{ restaurant.jour }} : {{ restaurant.nom }}</li>
{% endfor %}
</ul>
<br>
<button id="enregistrer_vote">Enregistrer</button>
</div>
{% if absents %}
<div style="float:left;">
<h4>
Ils ne mangent pas ici ...
</h4>
<div>
{% for absent in absents %}
<a style="text-align: center;
margin: 10px 0;
padding: 15px;
background-color: #ecf3fa;
border: 1px solid #d1d8e0;
display: block;
font-weight: bold;
text-decoration: none;
">
<p>{{ absent['prenom'] ~' '~ absent['nomInitiale'] }}</p>
</a>
{% endfor %}
</div>
</div>
{% endif %}
{% if vote_restaurants %}
<div >
<h4>
Restaurants votés : {{ vote_restaurants }}
</h4>
</div>
{% endif %}
{% if bureau %}
<div style="display:inline-block">
<h4>
Bureau : {{ bureau }}
</h4>
</div>
{% endif %}
</div>
</div>
{% endblock %}
{% block javascript %}
<script type="text/javascript">
var votes = new Array();
function dragStart(event) {
event.dataTransfer.effectAllowed = 'move';
event.dataTransfer.setData("Text", event.target.getAttribute('id'));
}
function dragOver(event) {
if (event.preventDefault) event.preventDefault(); // allows us to drop
$(event.target).addClass('over');
return false;
}
// to get IE to work
function dragEnter(event) {
$(event.target).addClass('over');
return false;
}
;
function dragLeave(event) {
$(event.target).removeClass('over');
}
;
function checkPasIci() {
var check = false;
$("#liste-votes").each(function () {
if ($(this).text().trim()=='Pas ici') {
check = true;
}
;
});
return check;
}
function drop(event) {
if (event.target.id == "liste-restaurants" || event.target.id == "liste-votes") {
var element = event.dataTransfer.getData("Text");
if (((event.target.id == "liste-votes" ) && $("#liste-votes").children().length > 0 && $("#" + element + " p").text().trim() == 'Pas ici') ||
((event.target.id == "liste-votes" ) && checkPasIci() )) {
alert('Vous ne pouvez pas manger ici et Pas ici, désolé ... ');
return false;
};
//if($('#'+element).text().trim()=='Pas ici'){pas_ici=true;}
event.target.appendChild(document.getElementById(element));
event.stopPropagation();
var elements = $("#liste-votes").children("a");
if (elements.length > 0)
$("#clear-votes").removeClass("hidden");
else
$("#clear-votes").addClass("hidden");
var indexToRem = functiontofindIndexByKeyValue(votes, '_restaurant_id', element);
if (event.target.id == "liste-votes") {
if (indexToRem != null)
votes.splice(indexToRem, 1);
votes.push({_restaurant_id: element});
}
else {
votes.splice(indexToRem, 1);
}
$(event.target).removeClass("over");
}
else {
event.dataTransfer.effectAllowed = 'move';
}
return false;
}
$('#enregistrer_vote').click(function () {
if (confirm("Pas de regret ? On valide ?...")) {
$.post('{{ path('votes_update') }}', {votes: votes}, function (xml) {
location.reload();
});
}
});
function functiontofindIndexByKeyValue(arraytosearch, key, valuetosearch) {
for (var i = 0; i < arraytosearch.length; i++) {
if (arraytosearch[i][key] == valuetosearch) {
return i;
}
}
return null;
}
function clickDelete(event) {
var elements = $("#liste-votes").children("a");
var to = $("#liste-restaurants");
var from = $("#liste-votes");
for (var i = 0; i < elements.length; i++) {
to.append($("#" + elements[i].id));
}
votes.splice(0, votes.length);
}
function clickDeletePast(event) {
$.post('{{ path('votes_delete_past') }}', {}, function (xml) {
if (xml.error) {
alert('Une erreur s\'est produite : ' + xml.msg);
}
else {
$("#clear-past-votes").addClass("hidden");
alert("L'historique des votes passés a été vidé avec succès.");
}
}, 'json');
}
</script>
{% endblock %}
单击按钮后应该显示的表单(对#&34不做任何操作;如果&#34;):
{% extends "::base.html.twig" %}
{% block stylesheets %}
{{ parent() }}
{% stylesheets
'bundles/intranet/css/draggable.css'
filter='cssrewrite' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
{% endblock %}
{% block content %}
<div id="sf_admin_container">
<div class="titreBleuFonce">Allons-manger</div>
<div id="sf_admin_content">
{% if is_granted('ROLE_ADMIN') %}
<div><span id="clear-past-votes" onclick="return clickDeletePast(event);"><img
src="{{ asset('bundles/intranet/images/commun/delete.png') }}" alt="Trash"/>Vider l'historique des votes passés</span>
</div>
<br/>
<br/>
{% endif %}
{% set idx = -1 %}
{% for restId, recap in recapitulatif %}
{% set idx = idx +1 %}
{% set taille = 30 + (10 * (recap['poid'] * 2)) %}
<div id="{{ restId }}" class="resultat-wrapper" style="height: {{ taille ~ 'px' }}">
{% if idx > 0 %}
<div class="votes"><span class="libelle-restaurant">{{ recap['libelle'] }}</span><br/>{{ recap['poid'] }}</div>
{% else %}
<div class="votes"><span class="libelle-restaurant" style="color:red ;">{{ recap['libelle'] }}</span><br/>{{ recap['poid'] }}</div>
{% endif %}
<div class='votants'>
{% for votant in recap['votants'] %}
{{ votant['prenom'] ~' '~ votant['nomInitiale']~' (' ~ votant['poid'] ~ ')' }}<br/>
{% endfor %}
</div>
<p style='clear: both;'></p>
</div>
{% else %}
Il n'y a aucun vote pour le moment.
{% endfor %}
</div>
</div>
{% endblock %}
{% block javascript %}
<script type="text/javascript">
function clickDeletePast(event) {
$.post('{{ path('votes_delete_past') }}', {}, function (xml) {
if (xml.error) {
alert('Une erreur s\'est produite : ' + xml.msg);
}
else {
$("#clear-past-votes").addClass("hidden");
alert("L'historique des votes passés a été vidé avec succès.");
}
}, 'json');
}
</script>
{% endblock %}
我只知道symfony2一周,如果这个问题很愚蠢,请原谅我:/
提前致谢