#javascript #grails #groovy #gsp
#javascript #grails #groovy #gsp
Вопрос:
КЛАСС ДОМЕНА
package marchmock2
class Pgtyp {
Date date_hour
String mv
String pagetype
Integer visits
Integer visits_ly
Integer visits_lw
String time_period
String platform
String device
String browser
static mapping = {
table "pgtyp"
version false
date_hour column: "date_hour"
mv column: "mv"
pagetype column: "pagetype"
visits column: "visits"
visits_ly column:"visits_ly"
visits_lw column:"visits_lw"
time_period column:"time_period"
platform column:"platform"
device column:"device"
browser column:"browser"
}
static constraints = {}
}
КОНТРОЛЛЕР
package marchmock2
import grails.converters.*
import groovy.sql.Sql
class PgtypController {
def ajaxGetMv = {
def pgtyp = Pgtyp.executeQuery("select p.visits from Pgtyp p where p.mv = ?",["params.id"])
render pgtyp as JSON
}
def index() {
}
}
GSP
<html>
<head>
<g:javascript src="jquery-1.10.2.min.js"/>
<g:javascript src="prototype.js"/>
</head>
<body>
<form>
<g:select from="['AFFILIATES', 'SEO', 'SEM','DISPLAYADS']" name="mv"
onchange="${remoteFunction(
controller:'Pgtyp',
action:'ajaxGetMv',
params:''id=' escape(this.value)',
onSuccess: 'printpgtyp(data)')}">
</g:select>
</form>
<script>
function printpgtyp(data) {
console.log(data)
}
</script>
</body>
</html>
Я ожидаю, что массив объектов будет выведен на консоль. Тем не менее, я получаю следующий вывод в моей консоли:
[
each: function,
eachSlice: function,
all: function,
any: function,
collect: function …
]
Что-то не так с тем, как я это печатаю, или это потому, что значение из моего GSP каким-то образом не передается на контроллер?
Комментарии:
1.
["params.id"]
должно быть[params.id]
2. Есть ли какой-нибудь способ отправить результат в GSP в следующем формате посещений: 123 посещения: 23 посещения: 12
3. Ваш код является файлом, за исключением изменений, о которых я упомянул выше. Он отправляет данные в формате [123, 23, 12,…]. Просто просмотрите это.
4. Что вы получите, если откроете в браузере
http://[[your_url]]/pgtyp/ajaxGetMv
URL?5. Также вы можете добавить ведение журнала прямо в метод, если хотите знать, какой метод используется в параметрах.
def ajaxGetMv = { log.debug "params: $params"