2012-06-22 3 views
-1

Я пытаюсь получить значение, выбранное пользователем из приглашения на поиск, и передать его в javascript. в моем контроллере поиска хранится в @result. Я потом найти то, что мне нужно с (Params [: query_id]Передача переменных из ruby ​​в javascript

Требуется сделать запрос для неподписанных пользователей попышнее, добавив их выбор подсказывать пробовал простой способ -

var selected = getElementById('#query').value; 

. Но получили это сообщение об ошибке: ReferenceError: не удается найти переменную: getElementById

Пытался получить эту переменную из массива рубина:

var selected= <%= @result.to_json %>; 

Но она возвращает нуль

Добавление кода searh контроллера, как это было предложено:

индекс четкости respond_to сделать | формат | format.html {визуализации: текст => "HTML"}

format.js do 
    @search = SearchItem.search{ keywords params["query"] } 

    @result = [] 
    @search.each_hit_with_result do |hit, item| 
     @result << {:name => hit.stored(:name), :id => item.id} 
    end 

    render :json => @result.to_json 

    end 

end 

Тогда в поисках HTML У меня есть

#search 
    = form_tag find_from_query_entries_path, :remote => true, :id => "search_form" do 
    = text_field_tag :query, nil 
    = hidden_field_tag :query_id 
+0

Я предлагаю размещать больше кода ... без вашего кода контроллера, это слишком редко, чтобы позволить нам увидеть проблему. –

ответ

1

Rails поставляется с JQuery, так почему бы не использовать его?

Я думаю, что это то, что вы хотите.

$('query').val()

Но вы должны прыгать в оказанной HTML в вашем браузере, чтобы проверить, если узел вы хотите выбрать в качестве имени запроса (которым я думаю, что это то, что рельсы делает или ID запроса, как вы думаете, это

+0

rendered html было еще одним большим предложением «#query», работал! – Tyra

2

getElementById не определен глобальный объект. Это свойство document.

Try:

var selected = document.getElementById('#query').value; 
+0

Это действительно разрешило ReferenceError, но теперь я получаю идентификатор TypeError: 'null' не является object (оценка 'document.getElementById (' # query '). value') – Tyra

+0

Это сработало! Мне просто пришлось использовать двойные кавычки. – Tyra

Смежные вопросы