form.blade.php 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. @extends('layouts.app')
  2. @section('title', 'Форма отправки')
  3. @section('content')
  4. <div class="container mx-auto px-4 py-8">
  5. <div class="max-w-2xl mx-auto bg-white rounded-lg shadow-md p-6">
  6. <div class="mb-6">
  7. <h4 class="text-2xl font-bold text-gray-800">Форма обратной связи</h4>
  8. <p class="text-gray-600 mt-2">Заполните все обязательные поля (*)</p>
  9. </div>
  10. <div>
  11. <form method="POST" action="{{ route('form.submit') }}" class="space-y-6">
  12. @csrf
  13. <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
  14. <div>
  15. <label for="name" class="block text-sm font-medium text-gray-700 mb-1">
  16. Имя *
  17. </label>
  18. <input type="text"
  19. id="name"
  20. name="name"
  21. value="{{ old('name') }}"
  22. required
  23. class="w-full px-4 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition"
  24. placeholder="Введите ваше имя">
  25. @error('name')
  26. <div class="mt-1 text-sm text-red-600">{{ $message }}</div>
  27. @enderror
  28. </div>
  29. <div>
  30. <label for="email" class="block text-sm font-medium text-gray-700 mb-1">
  31. Email *
  32. </label>
  33. <input type="email"
  34. id="email"
  35. name="email"
  36. value="{{ old('email') }}"
  37. required
  38. class="w-full px-4 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition"
  39. placeholder="example@email.com">
  40. @error('email')
  41. <div class="mt-1 text-sm text-red-600">{{ $message }}</div>
  42. @enderror
  43. </div>
  44. </div>
  45. <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
  46. <div>
  47. <label for="phone" class="block text-sm font-medium text-gray-700 mb-1">
  48. Телефон *
  49. </label>
  50. <input type="tel"
  51. id="phone"
  52. name="phone"
  53. value="{{ old('phone') }}"
  54. required
  55. class="w-full px-4 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition"
  56. placeholder="79991234567">
  57. @error('phone')
  58. <div class="mt-1 text-sm text-red-600">{{ $message }}</div>
  59. @enderror
  60. </div>
  61. <div>
  62. <label for="category_id" class="block text-sm font-medium text-gray-700 mb-1">
  63. Категория
  64. </label>
  65. <select id="category_id"
  66. name="category_id"
  67. class="w-full px-4 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition">
  68. <option value="">Выберите категорию</option>
  69. @foreach($categories as $category)
  70. <option value="{{ $category->id }}" {{ old('category_id') == $category->id ? 'selected' : '' }}>
  71. {{ $category->name }}
  72. </option>
  73. @endforeach
  74. </select>
  75. @error('category_id')
  76. <div class="mt-1 text-sm text-red-600">{{ $message }}</div>
  77. @enderror
  78. </div>
  79. </div>
  80. <div>
  81. <label class="block text-sm font-medium text-gray-700 mb-3">
  82. Пол *
  83. </label>
  84. <div class="flex space-x-4">
  85. <label class="inline-flex items-center">
  86. <input type="radio"
  87. name="gender"
  88. value="1"
  89. {{ old('gender') == '1' ? 'checked' : '' }}
  90. class="h-4 w-4 text-blue-600 focus:ring-blue-500">
  91. <span class="ml-2 text-gray-700">Мужской</span>
  92. </label>
  93. <label class="inline-flex items-center">
  94. <input type="radio"
  95. name="gender"
  96. value="0"
  97. {{ old('gender') == '0' ? 'checked' : '' }}
  98. class="h-4 w-4 text-blue-600 focus:ring-blue-500">
  99. <span class="ml-2 text-gray-700">Женский</span>
  100. </label>
  101. </div>
  102. @error('gender')
  103. <div class="mt-1 text-sm text-red-600">{{ $message }}</div>
  104. @enderror
  105. </div>
  106. <div>
  107. <label for="message" class="block text-sm font-medium text-gray-700 mb-1">
  108. Сообщение *
  109. </label>
  110. <textarea id="message"
  111. name="message"
  112. rows="5"
  113. required
  114. class="w-full px-4 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition"
  115. placeholder="Введите ваше сообщение (минимум 10 символов)">{{ old('message') }}</textarea>
  116. @error('message')
  117. <div class="mt-1 text-sm text-red-600">{{ $message }}</div>
  118. @enderror
  119. </div>
  120. <div>
  121. <label for="comment" class="block text-sm font-medium text-gray-700 mb-1">
  122. Комментарий (необязательно)
  123. </label>
  124. <textarea id="comment"
  125. name="comment"
  126. rows="2"
  127. class="w-full px-4 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition"
  128. placeholder="Добавьте комментарий, если необходимо">{{ old('comment') }}</textarea>
  129. </div>
  130. <div class="flex justify-end space-x-4">
  131. <button type="reset"
  132. class="px-6 py-2 border border-gray-300 text-gray-700 rounded-md hover:bg-gray-50 transition">
  133. Сбросить
  134. </button>
  135. <button type="submit"
  136. class="px-6 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700 focus:ring-4 focus:ring-blue-300 transition">
  137. Отправить
  138. </button>
  139. </div>
  140. </form>
  141. </div>
  142. </div>
  143. </div>
  144. @endsection