
codificar caracteres especiales en una url
Publicado por gg (3 intervenciones) el 14/07/2020 12:06:23
Buenos dias,
Tengo un portal en el cual los usuarios insertan incidencias por medio de un formulario simple. Cuando crean las incidencias, se pintan en una tabla en la cual estan todas las creadas hasta ese dia y en las cuales pueden añadir comentarios si estas siguen abiertas.
El problema lo tengo al añadir estos comentarios ya que al insertar caracteres especiales como pueden ser "&%$#/+" la pagina enseña un error de "objeto no localizado".
Este es el script que tengo en el archivo html
Y este el codigo que tengo en el Controller con el metodo para añadir estos comentarios:
Sabeis como hacer para que coja bien estos caracteres?
Saludos y gracias de antemano, voy un poco perdido, hace poco que empece a usar symfony.
Tengo un portal en el cual los usuarios insertan incidencias por medio de un formulario simple. Cuando crean las incidencias, se pintan en una tabla en la cual estan todas las creadas hasta ese dia y en las cuales pueden añadir comentarios si estas siguen abiertas.
El problema lo tengo al añadir estos comentarios ya que al insertar caracteres especiales como pueden ser "&%$#/+" la pagina enseña un error de "objeto no localizado".
Este es el script que tengo en el archivo html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{% block javascripts %}
<script>
function addObs(id){
$('#incidenciaid3').val(id);
$("#myModal3").modal("toggle");
}
$('#botonguardar').on('click', function() {
$("#myModal3").modal("toggle");
var url = "{{path('incidencias_add_obs', {'incidencia': 'incidenciaid3','estado': 2,'obs': 'valorobs','redireccion': 2 })}}";
url = url.replace("incidenciaid3", $('#incidenciaid3').val());
var res = url.replace(url);
if($('#obs').val() == "")
url = url.replace("valorobs", "Ninguna observación añadida.");
else
url = url.replace("valorobs", $('#obs').val());
window.location.href = url;
});
</script>
{% endblock %}
Y este el codigo que tengo en el Controller con el metodo para añadir estos comentarios:
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
public function incidencias_add_obsAction(IncidenciasIncidencias $incidencia, IncidenciasEstados $estado, $obs, $redireccion)
{
if($this->get('funciones')->tienePermiso(25,$this) || $this->get('funciones')->tienePermiso(32,$this)){
$nuevaobsinc = new IncidenciasAcciones();
try {
$em = $this->getDoctrine()->getManager();
$user = $this->get('security.token_storage')->getToken()->getUser();
$nuevaobsinc->setIncidencia($incidencia)->setFechor(new \DateTime())->setObservaciones($obs)->setUsuario($user);
$incidencia->setEstado($estado);
$em->persist($incidencia);
$em->persist($nuevaobsinc);
$em->flush();
$this->get('session')->getFlashBag()->add('notice','Se han añadido las observaciones para la incidencia '.$incidencia->getId(). ' y cambiado su estado a '.$estado->getNombre().'.');
} catch (\Exception $e) {
if(get_class($e) != "Doctrine\DBAL\Exception\UniqueConstraintViolationException" && get_class($e))
$this->get('session')->getFlashBag()->add('error','ERROR: Ha ocurrido un error insertando los datos. '.$e);
}
if($redireccion == 2)
return $this->redirect($this->generateUrl('incidencias', array('id' => $incidencia->getMotivo()->getClase()->getTipo()->getId())));
else
if($redireccion == 1)
return $this->redirect($this->generateUrl('incidencias_admin', array('id' => $incidencia->getMotivo()->getClase()->getTipo()->getId())));
else
return $this->redirect($this->generateUrl('incidencias_responsable', array('id' => $incidencia->getMotivo()->getClase()->getTipo()->getId())));
}
else throw new AccessDeniedException();
}
Sabeis como hacer para que coja bien estos caracteres?
Saludos y gracias de antemano, voy un poco perdido, hace poco que empece a usar symfony.
Valora esta pregunta


0