2017-03-06 116 views
1

文件的鏈接我在codigniter創建一個AJAX腳本文件main.js位於本地主機/網站/資產/ JS/main.js無法提供笨

上主要的.js我貼過鏈接到這樣的文件,當我在正常模式下無法在框架測試現在

$(document).ready(function(e) { 
$("#post").on('submit', (function(e) { 
    var form = this; 
    $.ajax({ 
     url   : "includes/post_data.php", 
     type  : "POST", 
     data  : new FormData(this), 
     contentType : false, 
     cache  : false, 
     processData : false, 
     success  : function(data) { 
      $("#data_update").prepend(data); 
      form.reset(); 
     } 
    }); 
})); 
}); 

當我做笨內這種類似的功能,我創建了一個控制器,所以如何將給予鏈接到現在爲止它不會被包含/ get_data.php我創建的控制器是這樣的

class Forums extends CI_Controller { 
    public function post_forum() { 
     //code goes here 
    } 
} 

當我試着給的鏈接爲 'mydirecotry /論壇/ post_forum' 它指出一個錯誤,請幫我出

+0

嘗試首先在您的js文件中獲得'base_url()'。 –

+0

base_url可以像這樣獲得<?php echo base_url()?>但是我相信我不能在.js文件中使用php的權利? –

+0

需要製作一些具有base_url()值的隱藏字段。 –

回答

1

在笨試試這個:

url : "<?php echo base_url() ?>/post_forum", 

BASE_URL()

按照配置文件中的指定返回您的站點基址。例如:

echo base_url(); 

注:如果您正在使用單獨的JS文件,然後傳遞到它的價值,並得到使用JS或Jquery的它的價值。

+1

是的我試圖做到這一點,但我的腳本是在main.js PHP我相信不會在js文件中工作嗎? –

+0

我認爲在'核心js(main.js)'文件OP不能使用php標記。我是對@Mayank Pandeyz。 –

+0

在這種情況下,在表單中放置一個隱藏字段,其中將<?php echo base_url()?>'傳遞給它的值並使用JS或Jquery獲取它的值。 –

1

您必須指定控制器的完整url。要檢查完整的url,請在項目的任何控制器中運行此代碼。

例子:

class Forums extends CI_Controller { 

    public function post_forum() { 

     echo base_url('forums/post_forum'); 
    } 
} 

瀏覽該控制器由您browser.It會生成完整的鏈接。 像: http://localhost/mydirecotry/forums/post_forum 複製並粘貼到你的代碼的URL中的完整鏈接:

+0

好,就像我寫的每一個腳本,我必須提供完整的URL?我們不能像我們通常提供的路徑那樣提供路徑,因爲/ includes/filename –

+0

在codeigniter中,您將無法訪問像include/filename這樣的php文件。 –

+0

通過網址生成你的鏈接:'<?php echo base_url('forums/post_forum'); ?>'在php文件中,而.js文件通過隱藏字段傳遞網址,Ajax鏈接總是公開的。 –

0

如果你沒有刪除您的網址index.php那麼,在你的jQuery的文件URL更改爲:

url : <?php echo base_url('index.php/forums/post_forum') ?>,

或者,如果您已從網址中刪除index.php,請將其更改爲:

url : <?php echo base_url('forums/post_forum') ?>,

另外,爲了使用base_url()方法,你必須首先加載url助手。