【问题标题】:phalcon and jquery ajaxphalcon 和 jquery ajax
【发布时间】:2013-10-04 00:27:13
【问题描述】:

我正在使用 Phalcon PHP 框架。首先,我在 jquery 中获取 Tag::textField 的值时遇到问题。我有兴趣从 jquery 访问 Tag::textField 的值。 第二个问题是如何使用 AJAX 调用控制器的方法。我试图在单击按钮时从我的 XML 控制器调用方法 posalji(),但它并没有停止工作。这是我试图调用的控制器方法:

public function posaljiAction()
{
    $data = "Ja se zovem Nedim Omerbegovic";
    echo json_encode($data);
}

这是我的观点(pretraga.phtml):

<?php
    use Phalcon\Tag;
?>
<?php
    echo Phalcon\Tag::javascriptInclude("http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js", false);
    echo Phalcon\Tag::javascriptInclude("javascript/jquery.js");
?>
    <script type="text/javascript">
        $(document).ready(function(){
            $("#dugme").click(function(){
                $.ajax({
                    url: "<?php echo $this->url->get("xml/posalji") ?>",
                    type:'POST',
                    dataType: 'json',
                    success: function(data) {
                        alert(data);
                    }
                });     
            });
        });
    </script>

    <h2>Primjer penosa varijable iz controllera to view-a</h2>
    <?php echo Tag::form("xml/pretraga"); ?>
    <p>
        <label for="name">Naslov</label>
        <?php echo Tag::textField("naslov") ?>
    </p>
    <p>
        <?php echo Tag::submitButton("prikazi") ?>
    </p>
</form>


<form>
    <label for="text">Unesi:</label>
    <p>
        <input type="text" id="unos"/>
    </p>
    <input type="submit" id="dugme" value="Prikazi"/>
</form>

提前致谢。

【问题讨论】:

    标签: jquery ajax phalcon


    【解决方案1】:
    【解决方案2】:

    如果您导航到/xml/posalji,您将看到带有回显字符串的整个布局出现。您将需要禁用该特定操作的视图:

    public function posaljiAction()
    {
        $this->view->disable();
    
        $data = "Ja se zovem Nedim Omerbegovic";
        echo json_encode($data);
    }
    

    如果你想通过 jQuery 访问任何显示在视图上的控件,你只需要知道它的id。因此,如果您传入 Tag::textField() 参数,如下所示:

    $options = array(
        'some_field_name',
        'id'    => 'some_id',
        'class' => 'some_class',
        'size'  => '10',
    );
    
    echo Tag::textField($options);
    

    然后你可以像这样从 jQuery 访问它的值

    $('some_id').val()
    

    参考资料:

    jQuery val()

    Phalcon Tag Helpers

    【讨论】:

    • 是否可以阻止对这个不是XML Http RequestAction 的请求,这样任何用户都无法通过浏览器直接访问它?
    • 您可以为站点的该区域添加服务器指令,以便仅由特定范围的 IP 访问。您还可以在此操作的顶部添加身份验证,如果用户已登录等,它将向调用者发送数据。
    猜你喜欢
    • 2015-11-10
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 2014-04-03
    • 2012-11-26
    • 1970-01-01
    • 2012-07-19
    • 2015-10-20
    相关资源
    最近更新 更多