2016-10-29 2 views
0

из Франции ... и извините за мой английский язык ...запрос Ajax для формирования в CSS всплывающего окна

I-код в Symfony 3. У меня есть сущность «книга» может иметь, в зависимости от типа» «выбранный атрибут», один или несколько атрибутов (клиент, ученик, организатор и/или динамик), каждый из которых отображается как «пользователь». В моей «книжной» форме я могу выбрать для каждого из атрибутов, связанных с «пользователями» мои пользователи, зарегистрированные в bdd. Я хочу добавить «пользователь», открыв всплывающее окно css, загрузив форму пользователя и сохранив его с помощью ajax. В случае успеха, я перезарядить свой список с AJAX для использования на моей форме «бронирования.

function nouveauOrganisateur() { 
 
    $.ajax({ 
 
     url : Routing.generate('user_new'), 
 
     success: function(html) { 
 
      $('#NewOrganisateur').append(
 
       $(html).find('form') 
 
      ); 
 
      $('div#NewOrganisateur form button').replaceWith(
 
       $(
 
        '<button onclick="EnregistrerClient(event)">Enregistrer</button>' 
 
       ) 
 
      ); 
 
     } 
 
    }); 
 
} 
 

 

 
function EnregistrerClient(event) { 
 
    console.log(event.target.nodeName); 
 
    var $form = $(event.target).closest('form'); 
 
    $.ajax({ 
 
     url : Routing.generate('user_new'), 
 
     type: 'post', 
 
     success: function(html) { 
 
      console.log(html); 
 
     } 
 
    }) 
 
}
<script src="https://code.jquery.com/jquery-3.1.0.js"></script> 
 

 
<div id="UserOrganisateur" class="label"> 
 
    <strong>{{ form_label(form.Stage.organisateurs, "Organisateurs ") }}</strong> 
 
    {{ form_errors(form.Stage.organisateurs) }} 
 
    {{ form_widget(form.Stage.organisateurs) }} 
 
    <button onclick="nouveauOrganisateur()">Ajouter un Nouveau client</button> 
 
    <div id="NewOrganisateur"> 
 
     {{ form_errors(form.Stage.NewOrganisateur) }} 
 
     {{ form_widget(form.Stage.NewOrganisateur, {'value' : false}) }} 
 
    </div> 
 
</div>

Когда я проверить свою форму„пользователь“, моя страница перезагружается, но это не то, что Я хочу. И мой пользователь не зарегистрирован!? Я начал в JavaScript. вы можете мне помочь?


с моей формы, у меня есть «выбрать» для данного типа. Когда «тип» является выбранный, благодаря FormE vents и js script Я загружаю остальную часть формы. Например, если мой «тип» является «обучением», я загружаю внедренную форму обучения. Мой «обучающий» объект содержит атрибуты «органайзер» и «динамик», 2 множественных выбора, какие параметры являются «пользователем», хранящимся в BDD. В этой форме я добавляю кнопку для записи нового «пользователя». Эта кнопка отображает регистрационную форму для использования, в которой я заменил отправку на Кнопка действия Ajax. Я просто хочу зарегистрировать своего нового пользователя и перезарядить свой список избранных («организатор» и «динамик»), но когда я нажимаю на этот последний бот, моя страница идет от того, где выбрать «тип».


Whith некоторые изменения, я могу незарегистрированный мой новый пользователь

function nouveauOrganisateur() { 
 
    $.ajax({ 
 
     url : Routing.generate('user_new'), 
 
     success: function(html) { 
 
      console.log(html); 
 
      $('#NewOrganisateur').append(
 
       $(html).find('form') 
 
      ); 
 
      $('form[name=user] button').replaceWith(
 
       $(
 
        '<button>Enregistrer</button>' 
 
       ) 
 
      ); 
 
      $('form[name=user] button').on("click", function(){ 
 
       $.ajax({ 
 
        url : Routing.generate('user_new'), 
 
        type: 'post', 
 
        data: $('form[name=user]').serialize(), 
 
        success: function(html) { 
 
         console.log(html); 
 
        } 
 
       }); 
 
      }); 
 
     } 
 
    }); 
 
}

Но моя страница всегда перезагружается ???

+0

Вы говорите: «Моя страница перезагружена, но это не то, что я хочу». Не могли бы вы рассказать нам больше? И вы говорите, когда вы нажимаете на первую кнопку? –

+0

Нет, я говорю о форме кнопки пользователя, которую я перехожу на действие Ajax. –

+0

'' nouveauOrganisateur'' Попробуйте сохранить свой код на английском языке, если кто-то еще должен работать с вашим кодом, он не сможет его понять, если он не знает французский. – seahorsepip

ответ

0

Я думаю, что вы пытаетесь остановить страницу при перезагрузке или изменении, когда пользователь нажимает кнопку. Там могут быть два решения:

1.) Ток html <button> по умолчанию равен type="submit", который представляет форму. Вы можете избежать этого, добавив type="button"

или

2.) В яваскрипте функции EnregistrerClient добавить строку в верхней части функции event.preventdefault(); это остановит форму от представления.

+0

Да, это разрешило мой вопрос! благодаря –

Смежные вопросы