2013-09-27 70 views
3

我正在使用Phalcon PHP框架。首先,我有問題要在jQuery中獲取Tag :: textField的值。我有興趣從jquery獲取值Tag::textField。 第二個問題是如何使用AJAX調用控制器的方法。我正嘗試通過單擊按鈕從我的XML控制器調用方法posalji(),並且不會發出警告。這是我的控制器方法我試圖撥打:phalcon和jquery ajax

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> 

在此先感謝。

回答

4

如果您導航到/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

+0

是否有可能阻止請求到此'Action'這不是一個'XML HTTP Request'所以沒有用戶可以訪問它直接與他們的瀏覽器? – RPDeshaies

+1

您可以爲該站點的區域添加服務器指令,以便僅通過特定的IP訪問。您還可以在此操作的頂部添加身份驗證,如果用戶已經登錄,它會將數據發回給調用者。 –