Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][jquery] Problem z przekazaniem parametru z formularza via ajax do kontrolera
Forum PHP.pl > Forum > Po stronie przeglądarki
swiezak
Mam problem z przekazaniem parametru "zaszytego" w data-item do formularza, a następnie po submicie do kontrolera.

Kod formularza, z którego chciałbym przekazać parametr workdayKitId do kontrolera:
  1. <form id="jsMealForm" role="form" method="POST" action="">
  2. <div class="modal fade" id="mealModal" tabindex="-1" role="dialog" aria-labelledby="mealModalLabel" aria-hidden="true">
  3. <div class="modal-dialog">
  4. <div class="modal-content">
  5. <div class="modal-header">
  6. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
  7. <h4 class="modal-title" id="mealModalLabel"><i class="fa fa-refresh" aria-hidden="true"></i> {% trans %}Wymień posiłek{% endtrans %}</h4>
  8. </div>
  9. <div class="modal-body form-horizontal">
  10. <div class="form-group">
  11. <label for="" class="col-sm-5 control-label">{% trans %}Posiłek{% endtrans %}</label>
  12. <div class="col-sm-6">
  13. <select id="activeselect" name="param[newKitId]" class="select2 search">
  14. <option value="">Wybierz opcję</option>
  15. {% for kit in kits %}
  16. <option value="{{ kit.id }}">{{ kit }}</option>
  17. {% endfor %}
  18. </select>
  19. <input type="hidden" name="param[workdayId]" value="{{ entity.id }}">
  20. <input type="hidden" name="param[workdayKitId]" value="{{ workdayKitId }}"> // w tym miejscu parametr jest pusty
  21. </div>
  22. </div>
  23. </div>
  24. <div class="modal-footer">
  25. <button id="mealSubmit" type="submit" class="btn btn-primary btn-sm"><i class="fa fa-refresh" aria-hidden="true"></i> {% trans %}Zatwierdź{% endtrans %}</button>
  26. </div>
  27. </div>
  28. </div>
  29. </div>
  30. </form>


W templatce zaś taki oto zapis:
  1. <a href="#" class="btn btn-primary js-workdayKitId" data-item="{{ workdayKit.id }}" data-toggle="modal" data-target="#mealModal">{% trans %}Wymień posiłek{% endtrans %} <i class="fa fa-refresh" aria-hidden="true"></i></a>


Po kliknięciu na button z klasą js-workdayKitId pojawia się formularz w modalu, gdzie chciałbym w polu typu input hidden przekazać parametr workdayKitId do kontrolera, jednak mam problem z wywołaniem ajaksowym - id nie jest przekazywane dalej.

  1. /* helper meal functions */
  2. function mealInit() {
  3. jsMealFormUrl = '{{ path('user_workdays_change_meal_ajax') }}';
  4. }
  5. /* meal ajax */
  6. function mealAjaxPost(action, callback) {
  7. mealForm.addClass('working');
  8. mealModal.modal('hide');
  9.  
  10. $.ajax({
  11. type: "POST",
  12. data: mealForm.serialize(),
  13. url: jsMealFormUrl,
  14. success: function(data) {
  15. mealForm.removeClass('working');
  16. if (callback) callback(data);
  17. mealInit();
  18. if (!action) mealDataContainer.empty().hide().html(data).fadeIn();
  19. else mealAjaxPost();
  20. },
  21. error:function() {
  22. mealForm.removeClass('working');
  23. }
  24. });
  25. return false;
  26. }
  27. /* meal dashboard */
  28. var mealForm = $('#jsMealForm'),
  29. mealDataContainer = mealForm.find('#mealDataContainer'),
  30. mealModal = mealForm.find('#mealModal'),
  31. workdayKitId = mealForm.find('.js-workdayKitId'), // nie wiem w jaki sposob przekazac wartosc obiektu do kontrolera
  32. jsMealFormUrl = '';
  33.  
  34. /* submit the meal form */
  35. mealForm.on('click', '#mealSubmit', function() {
  36. workdayKitId.val($(this).data('workdayKitId'));
  37. mealAjaxPost('changeMealAjax');
  38. return false;
  39. });


Czy ktos z Was podpowie mi, w jaki sposob przekazac parametr z data-item po kliknieciu buttona o id mealSubmit do kontrolera via ajax?
viking
W linii 36 console.log(workdayKitId); Nigdzie tego nie przekazujesz.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.