问题Symfony 3 // Ajax方法发布

时间:2018-02-13 16:44:42

标签: php ajax google-maps symfony

我目前正在与Symfony 3合作开展一个个人项目,我在AJAX Post方法中遇到了一些通过Doctrine发送数据的问题。 更具体地说,我的项目包括在Google地图上显示标记以及人们可以在其上放置标记地址的输入文本(感谢Google自动填充)。所以我想在我的数据库中存储名称的地址,纬度和经度。 我的问题出现在Controller上,它将数据发送到我的数据库。我不知道在哪里放json_encode。

任何人都可以帮助我吗?

在我看来:

$('#envoi').on('click', onSubmit);

function onSubmit(){
var data = {
 "address":$("#form_address").val(),
 "lat":lat,
 "lng":lng,
 "dateconcert":  $("#form_dateconcert").val(),
 "timeconcert":  $("#form_timeconcert").val(),
 "descconcert": $("#form_concertdescription").val()
 }
$.post('{{ path('setevent') }}', data, onReturn);
 }

function onReturn(serverResponse){
window.location = '{{ path('setevent') }}';
}

在我的控制器中:

use AppBundle\Entity\Event;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\TimeType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Serializer\Serializer;
use Symfony\Component\Serializer\Encoder\XmlEncoder;
use Symfony\Component\Serializer\Encoder\JsonEncoder;
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;

class EventCreationController extends Controller
{
/**
 * @Route("/profile/setevent", name="setevent")
*/
 public function new(Request $request)
{
$event = new Event();

$event->setDateconcert(new \DateTime('tomorrow'));

$form = $this->createFormBuilder($event)
     ->add('address', TextType::class, array('label' => "L'adresse de l'évènement : "))
    ->add('dateconcert', DateType::class, array('label' => "Sélectionnez la date de votre évènement : ",
    'widget' => 'single_text'))
    ->add('timeconcert', TimeType::class, array('label' => "Sélectionnez l'heure de votre évènement : ",
        'widget' => 'single_text'))
    ->add('concertdescription', TextType::class, array('label' => "Décrivez votre évènement"))
    ->add('save', SubmitType::class, array('label' => "C'est parti !",
    'attr'=> array('class'=>'send')))
    ->getForm();

return $this->render('creationevent/creationevent.html.twig', array(
'form' => $form->createView(),
));
}
}

有了这个,我没有任何错误。到目前为止,我还不知道将Doctrine的说明和json_encode放在哪里,以便将数据发送到我的数据库。

0 个答案:

没有答案