2014-01-13 48 views
0

下拉列表中的Grails GSP設置變量與 , 我當用戶從下拉列表中選擇,當用戶從選擇價值來決定分配一個變量,以另一種方式: 從Grails中

<g:select name="patient.id" from="${patients}" optionKey="id" > 

我想設置病人的ID爲「PID」變量在下面:

<g:set var="pid" scope="request"> 

與我成功的唯一途徑是:

<g:set var="pid" value="${2}" scope="request"> 

但這不是動態的方式。

我該如何做到這一點?

感謝 謝里夫

+2

GSP是服務器端的代碼,之前HTML發送到瀏覽器中執行。之後你不能使用變量。你想要達到什麼目的? –

回答

0

g:set其實並不是一個HTML領域,你正試圖從指定的HTML/JS代碼的Java對象。

您不能將任何Java對象從客戶端一個js變量scripting.If你需要一個解決辦法來實現這個只有那麼你可以做的最大的是:

$('#your_select').on('change',function(){ 
if($('this').val()=="bingo"){ 
var X="${pid="bingo"}" //if will assign pid a string "bingo" and X(a js var) value "bingo" 
} 
} 

${}之間的代碼是服務器端代碼,你不能寫任何客戶端代碼,所以基本上你不能只是做一些像"${pid=$(this).val()}"

如果您想知道爲什麼我們不能做到這一點,因爲沒有必要這樣做,它也沒有意義,如伊戈爾Artamonov的評論中所述。

+0

它不能用Grails完成嗎? – SShehab

+0

你問? –

+0

雅我問這是否可以使用Groovy或Grails完成? – SShehab

0

在你我在另一個答案描述並不需要一些解決方法則排序的需求的最佳解決方案是:

  1. 獲取一些JS變量的選擇值。
  2. 對服務器操作發出AJAX調用,將根據請求參數發送數據,因此在這種情況下,一個參數將成爲您選擇的值。
  3. 接收AJAX響應並根據響應設置html元素。

所以例子是:

var selected = $('#your_select_id).val(); 
jQuery.ajax({ 
        type: 'POST', 
        url: 'your action url that will render response', 
        data: "selected="+selected, 
        async: false, 
        success: function(response,textStatus){ 
         json= JSON.parse(response); 
         $('#some_textBox).val(json.somevalue); 
        }, 
        error:function(XMLHttpRequest,textStatus,errorThrown){} 
       }); 
+0

@SShehab,如果你不明白這一點,那麼你可能需要先了解網站開發的基本知識。 –