Получить значения из контроллера в JQuery - PullRequest
2 голосов
/ 20 мая 2009

Я новичок в Jquery. Как извлечь значения из моего контроллера и сравнить их с некоторыми строками в JQuery?

   $(".select"+increment).change(function () 
            {

          if("here i need the value from my controller " =='String')
               {
       $("<label id=labelstr"+stringinc+"  >"+labelname+"</label>").appendTo(".menu li");
       $("<input id=inputstr"+stringinc+" type= 'text' ></input>").appendTo(".menu li");
              }
         }

Ответы [ 2 ]

1 голос
/ 20 мая 2009

[править]: Это ответ, если под Контроллером вы подразумеваете данные Контроллера, переданные в объекте ViewData проекта ASP.NET MVC. [/ Править]

Скрипт должен быть в aspx / ascx (не в отдельном файле JS).

    <script language="Javascript">

       $(".select"+increment).change(function () 
            {

          if("<%=ViewData["YourData"] %>" =='String')
               {
       $("<label id=labelstr"+stringinc+"  >"+labelname+"</label>").appendTo(".menu li");
       $("<input id=inputstr"+stringinc+" type= 'text' ></input>").appendTo(".menu li");
              }
         }
    </script>
0 голосов
/ 20 мая 2009

Ваш вопрос очень запутанный, но я сделаю все возможное, чтобы помочь. Я предполагаю, что вы хотите получить эту информацию через AJAX. Я также предполагаю, что ваш контроллер CakePHP выдает следующее при вызове (вы можете узнать, перейдя по ссылке: http://yoursite/Forms/views):

This is some random string

Чтобы использовать это, как я предполагал, вам нужно будет сделать это:

<script language="javascript">
$(function() {
    $(".select"+increment).change(function () {
        $.get('/Forms/views',{},function(data) {
            if(data == 'This is some random string') {
                // I have no idea where you are getting the
                // 'stringinc' and 'labelname' variables from.
                $("<label id=labelstr"+stringinc+"  >"+labelname+"</label>").appendTo(".menu li");
                $("<input id=inputstr"+stringinc+" type= 'text' ></input>").appendTo(".menu li");
            }
        });
    });
});
</script>

Теперь, если вы пытаетесь сделать это так, как предлагает Оливер (кроме как в CakePHP), вам нужно сделать это:

<script language="javascript">
$(function() {
    $(".select"+increment).change(function () {
        // I'm not familiar with Cake, you might need to use
        // some sort of template syntax. Either way, whatever
        // method you need to use to get the value into you view
        // let's just assume its called '$value_from_controller'.
        var data = <?= $value_from_controller; ?>;
        if(data == 'This is some random string') {
            // I have no idea where you are getting the
            // 'stringinc' and 'labelname' variables from.
            $("<label id=labelstr"+stringinc+"  >"+labelname+"</label>").appendTo(".menu li");
            $("<input id=inputstr"+stringinc+" type= 'text' ></input>").appendTo(".menu li");
        }
    });
});
</script>

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...