Bonjour,
J'ai pu récupérer la position correcte du curseur dans la requête ajax mais dans le contrôleur, elle est toujours réinitialisé à 0. Je ne comprenais pas d’où vient ce problème ni comment le résoudre car c’est la première fois que j’utilise ajax. Je ne peux pas vraiment comprendre comment ça marche Merci pour votre compréhension! voici mon nouveau script: voici mon template: new.html.twig
{% extends '::layoutv.html.twig' %}
{% block stylesheets %}
{% endblock %}
{% block titre %}
{% endblock %}
{% block body %}
{#{{ tinymce_init({'use_callback_tinymce_init': true, 'theme': {'simple': {'menubar': false}}}) }}#}
<div>
<h1>
Insertion des projets
</h1>
</div>
<!-- BEGIN DISPLAY THE FLASH MESSAGES -->
{% for flashMessage in app.session.flashbag.get('error') %}
<div class="alert alert-error">
<button class="close" data-dismiss="alert"></button>
<strong><i class='icon-remove'></i> </strong> {{ flashMessage }}
</div>
{% endfor %}
<!-- END DISPLAY THE FLASH MESSAGES -->
<div class="row-fluid">
<div class="span6">
<div class="portlet-body form">
<!-- BEGIN FORM-->
<form id="formProject" class="form-horizontal"
action="{{ path('new_project') }}" enctype="multipart/form-data" method="post" }>
<div class="control-group">
<label class="control-label">Télécharger une image</label>
<div class="controls">
<input type="file" name="image">
</br>
<div class="row">
<div class="col-sm-8">
{{ form_row(formProject.texte|raw) }}
</div>
</div>
</div>
</br>
</div>
<div class="controls margin-bottom-30">
<button type="submit" name="submit" class="btn green" id="btnSubmit">Valider</button>
<button type="reset" class="btn yellow">Annuler</button>
</div>
{{ form_rest(formProject) }}
</form>
<!-- END FORM-->
</div>
</div>
</div>
{% endblock %}
{% block javascripts %}
<script type="text/javascript"
src="{{ asset('bundles/formationminip/plugins/tinymce/tinymce.min.js') }}"></script>
<script type="text/javascript"
src="{{ asset('bundles/formationminip/plugins/jquery-ui/jquery-ui.min.js') }}"></script>
<script type="text/javascript" src="{{ asset('bundles/formationminip/js/text.js') }}"></script>
{#-----------------------------------------------------------------------------------------------------------------#}
<script type="text/javascript">
$(document).ready(function() {
$('#btnSubmit').click(function() {
texta = document.getElementById("formation_minipbundle_project_texte");
var start = texta.selectionStart;
console.log(start);
var route="{{url('new_project')}}?pos="+start;
console.log(route);
$.ajax({
url: route,
type: "POST",
// async: false,
//data:{ pos : start},
success: function() {
console.log("success");
}
});
});
});
//
</script>
{% endblock %}
mon action dans le controller :
/**
* @Route("/create", name="new_project")
*/
public function createAction(Request $request) {
$project = new Project();
$em = $this->getDoctrine()->getEntityManager();
$formProject = $this->createForm('Formation\MiniPBundle\Form\ProjectType', $project);
$formProject->handleRequest($request);
if ($formProject->isValid()) {
if(isset($_POST['submit'])){
$file_name = $_FILES['image']['name'];
$file_tmp = $_FILES['image']['tmp_name'];
move_uploaded_file($file_tmp,$file_name);
header ("Content-type: image/jpeg");
$string=$formProject->get('texte')->getData();
$text= filter_var($string, FILTER_SANITIZE_STRING); //Supprimer les balises.
$font = 15;
$width = imagefontwidth($font) * strlen($string);
$height = imagefontheight($font) ;
switch (strtolower(pathinfo($file_name, PATHINFO_EXTENSION))){
case "jpg" :
$im = imagecreatefromjpeg($file_name);
break;
case "gif" :
$im = imagecreatefromgif($file_name);
break;
case "png" :
$im = imagecreatefrompng($file_name);
break;
case "bmp":
$im = imagecreatefrombmp($file_name);
break;
default :
trigger_error("Error Bad Extention");
exit();
break;
}
$position=intval($request->request->get('pos'));
var_dump($position); // renvoie 0
$y = imagesy($im) - $height;
$textColor = imagecolorallocate ($im, 255, 255,255);
/*----------------------------------------*/
imagestring($im, $font, $position, $y, $text, $textColor);
$project->setLogo($file_name);
$em->persist($project);
$em->flush();
imagejpeg($im);
}}
return $this->render('FormationMiniPBundle:Project:new.html.twig', array(
'project' => $project,
'request'=> $request->request->get('pos'),
'formProject' => $formProject->createView(),
));
}
sinon.. comment peux tu savoir quelles sont les paramètres envoyés par ton ajax ??
merci de me donne l'aide !