-
-
Save anoriar/ba2a5fecc70af29be4445ffaa2f88704 to your computer and use it in GitHub Desktop.
ajax + mvc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<div class="form-wrap"> | |
<form id="main-form" method="post" action="" data-ajax-url="/ajax/?controller=user&action=send"> | |
<div> | |
<label for="name">Имя</label> | |
<input type="text" name="name" required> | |
</div> | |
<div class="radio"> | |
<span>Пол</span> | |
<label> | |
<input type="radio" name="sex" value="мужской">мужской | |
<div class="radio-control male"></div> | |
</label> | |
<label> | |
<input type="radio" name="sex" value="женский">женский | |
<div class="radio-control female"></div> | |
</label> | |
</div> | |
<div> | |
<label for="email">E-mail</label> | |
<input type="email" name="email" required> | |
</div> | |
<div> | |
<label for="country">Страна</label> | |
<select name="country"> | |
<option value="" disabled selected>Выберите страну проживания</option> | |
<option value="Россия">Россия</option> | |
<option value="Украина">Украина</option> | |
<option value="Беларусь">Беларусь</option> | |
</select> | |
<div class="select-arrow"></div> | |
</div> | |
<div> | |
<label for="file">Изображение</label> | |
<input type="file" name="file"> | |
</div> | |
<button type="submit">Отправить</button> | |
</form> | |
</div> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$('#main-form').on('submit', function(e){ | |
e.preventDefault(); | |
//Случай 1 (без файла) | |
// var formData = decodeURI($(this).serialize()); | |
var ajaxUrl = $(this).data("ajax-url"); | |
$.ajax({ | |
url: ajaxUrl, | |
// Случай 1 (без файла) | |
// data: { | |
// userData: formData | |
// }, | |
data: new FormData(this), | |
type: 'POST', | |
dataType: 'json', | |
//Случай 1 закомментить эти 2 строки | |
processData: false, | |
contentType: false, | |
success: function(response) { | |
console.log('response from server: ', response); | |
} | |
}); | |
}); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace Aero\Tools\Mvc\Controller; | |
use Aero\Main\Mvc; | |
use Bitrix\Main\Context; | |
/** | |
* Контроллер коллекции Royal | |
* | |
*/ | |
class User extends Mvc\Controller\Prototype | |
{ | |
/** | |
* Отправляет данные о пользователе | |
* @return array | |
*/ | |
public function sendAction(){ | |
$this->view = new Mvc\View\Json();; | |
$this->returnAsIs = true; | |
//Случай 1 (без файла) | |
// $data = []; | |
// parse_str($this->getParam("userData"), $data); | |
$request = Context::getCurrent()->getRequest(); | |
$name = $request->getPost("name"); | |
$sex = $request->getPost("sex"); | |
$email = $request->getPost("email"); | |
$country = $request->getPost("country"); | |
$file = $request->getFile('file'); | |
return ["success" => true]; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment