在JQuery中从Controller中检索值

时间:2009-05-20 11:56:57

标签: php jquery cakephp

我是Jquery的新手。如何从我的控制器中检索值并将它们与JQuery中的一些String进行比较?

   $(".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 个答案:

答案 0 :(得分:1)

[编辑]:这个答案是,如果由Controller表示在ASP.NET MVC项目的ViewData对象中传递的Controller数据。 [/编辑]

脚本必须位于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>

答案 1 :(得分:0)

你的问题很混乱,但我会尽力帮助你。我假设你想通过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>

现在,如果你想按照Oliver建议的方式去做(除了在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>

我希望在某种程度上有所帮助。