Как использовать Ajax в BSP?
Я изучаю BSP Framework в SAP. До сих пор мне удалось заставить мою модель MVC работать.
Вот мой код
Посмотреть
<body>
<z:form>
<z:input binding="//c/counter"
invisible="true"/>
Counter : <z:write binding="//c/counter"/>
<z:button fcode="incr"
text="Increase"/>
<z:button fcode="decr"
text="decrease"/>
</z:form>
</body>
контроллер
Через fcode я вызываю метод "fcode_incr" в контроллере.
'c' - это модельный экземпляр zcl_counter. у него есть счетчик атрибутов, который будет увеличен этим методом.
method fcode_incr.
c->increment( ).
endmethod.
Я надеюсь, что zcl_model очевиден, и его код здесь не актуален.
Проблема, когда я нажимаю кнопку "увеличить", сервер отправляет запрос. Когда он получает ответ, он обновляет страницу. Так что я получаю увеличенное значение. как мне заставить его работать с Ajax, чтобы страница оставалась без обновления?
Я уже пробовал Ajax с "XML-страницей с flowlogic". как "Eventhandler ->OnRequest"
request->get_form_field('variable').
Это помогает дальше?
Правильный Ajax Call будет
$.ajax({
url:'ajaxController.do',
statusCode:{
404: function(){
alert("not found");
}
},
success: function(data){
$('#viewData').html(data);
}
}).error(function(){
alert("failed");
});
1 ответ
Эта ссылка объясняет детали: http://www.saptechnical.com/Tutorials/BSP/AJAX/create.htm
Но по сути;
Интегрируйте некоторый javascript в свою страницу bsp, чтобы вы могли делать ajax, вот несколько вариантов:
- Либо взять код по этой ссылке
- Или лучше использовать jQuery, либо через
- С помощью
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/themes/base/jquery-ui.css" type="text/css" />
- Или загрузите http://code.jquery.com/jquery-1.8.2.min.js и сослаться на него в своем коде.
- С помощью
Вы можете вызывать ajax-вызовы, например, с помощью jQuery: http://api.jquery.com/jQuery.ajax/
Создайте контроллер в своем проекте BSP, который будет вызываться из AJAX.
Создайте класс контроллера для вашего контроллера, только переопределите REQUEST и поместите туда свою логику
Готово.