Link Javascript in codeigniter - javascript

I am using php web framework codeignter, I would want to access my link on Javascript, I've tried
<script type="text/javascript" src="<?php echo "assets/main.js;?>"></script>.
Autoload url helper is enabled but it doesn't load my Javascript.
Thanks!

simple and clean way is here:
create a helper class:
create a utility_helper.php class in helper folder and only put the below code in the utility_helper.php
code to put: (with <?php ...below code here... ?>)
function asset_url(){
return base_url().'assets/';
}
open your autoload.php and make sure you include utility in autoload['helper'] array:
$autoload['helper'] = array('url','utility','file','form','etc...');
important:
now create assets folder at the same location where you have your system and application
folders.. and put your all css and js files and folder in assets folder
now you can link your css and js in view like below:
<script src="<?php echo asset_url(); ?>js/jquery.js"></script>
<link href="<?php echo asset_url(); ?>css/style.css"/>
<link rel="icon" href="<?php echo asset_url(); ?>img/favicon.ico" type="image/x-icon"/>
GOOD LUCK :)

Related

How to link a JS file to a PHP Page Template?

I have written a PHP page template and would like to link the needed Javascript from an external file. However, when I do this I get a syntax error: Uncaught SyntaxError: Unexpected token < referencing the doctype header <!DOCTYPE html>. If I put the script in the PHP file directly then it works.
Obviously this is making my file messy, so how can I do it without breaking the script? Also, since this script is only needed on this one page I don't want to put it in my footer to load on the whole site.
I have tried to use <script type="text/javascript" src="staff-test.js"></script> in my PHP file to reference the JS file, with no success. The PHP and the JS files are in the same folder, so the src path seems to be correct.
The PHP:
<?php
get_header();
include('staff-test.css');
?>
<div class="page-wrap">
// my content
</div>
<script type="text/javascript" src="staff-test.js"></script>
<?php
get_footer();
Using this code I get a syntax error. I would like to keep the JS in a separate file, but seems to only work when I put it directly in the PHP file.
Using include('staff-test.css'), you are asking your web server to interpret the CSS file as PHP. This is why you are getting a syntax error.
You want to do instead:
<link rel="stylesheet" type="text/css" href="staff-test.css">
Try this
<?php
get_header();
?>
<link rel="stylesheet" type="text/css" href="<?php echo get_stylesheet_directory_uri(); ?>/staff-test.css">
<div class="page-wrap">
// my content
</div>
<script type="text/javascript" src="<?php echo get_stylesheet_directory_uri(); ?>/staff-test.js"></script>
<?php
get_footer();
?>
You may need to register the script in your functions file. Check out the WordPress reference for registering a script.
https://developer.wordpress.org/reference/functions/wp_register_script/

How to add lines before each and every </head> in multiple HTML Page site?

I hope all are doing well.
How to add respo_style.css before closing </head> in multiple(in my case there is 65 pages) html + PHP page.
is there any best way to add dynamically
<link rel="stylesheet" type="text/css" href="respo_style.css" />
using code?
In my case i have one config.php which is called in every page.
NOTE: Without add or change any other files. Is this possible to add the lines dynamically using jQuery or JavaScript.
Simple things is just add extra additional file in existing without opening each and every files.
I'm sure there are a lot of ways but here's an explanation for the fastest/easiest implementation IMO.
For code that is repetitive, you should store that code in one file and call it using PHP's include_once function. However in order to use PHP in your files, you would need to use use .php extension instead of .HTML (assuming you files are .HTML) for your webpages.
Here's an example:
<head>
<?php include_once("repetitive_code_here.php"); ?>
</head>
If you run ob_start(); at the beginning of your script, then you can call ob_get_contents() to get the page and replace </head> with your stylesheet.
$string = ob_get_contents();
$link = '<link rel="stylesheet" type="text/css" href="respo_style.css" />';
echo str_replace('</head>', $link . '</head>', $string);
ob_end_clean();
or instead of ob_get_contents pass the funtion to ob_start();
function callback($buffer) {
$link = '<link rel="stylesheet" type="text/css" href="respo_style.css" />';
return str_replace('</head>', $link . '</head>', $buffer);
}
ob_start('callback');
but you will need to call ob_end_flush(); at the end.
This will work. I have style.css in all file. so i can include the respo_style.css in style.css using this code #import url("base.css");
You should do something like this:
page.php (write this in all 65 pages)
<?php
require_once('includes/head.php'); //Assuming you put head.php in a folder called "includes" inside the root
?>
//Then the content of the page
And head.php
<html>
<head>
<link rel="stylesheet" type="text/css" href="respo_style.css" />
</head>

Using JavaScript with Codeigniter

I have a CI folder structure like this:
-> root
- - >application
- - >resources
- - >system
In the resources folder, I have separate folders like 'css', 'images', 'js', 'js/plugins' etc.
I have a twitter plugin in js/plugins folder which needs the base path of the site. I used it like this :
modpath: 'resources/plugins/twitter/',
And it works if the url that i visited is localhost/myapp/ , but doesn't work when the url is localhost/myapp/index.php/welcome
What i have to do ?
Because it is not a controller or a view, i can't use it as <?=site_url();?> right? So what i need to do?
Thanks for help !
You should use the full path to your files, in my CI projects I use something like this:
<script src="<?=base_url()?>js/twitter.js
Remember that your assets must be in the /public folder.
In your view file, before loading any javascripts add something like this
<script>
var base_url = '<?php echo base_url(); ?>';
</script>
This would make a javascript variable called base_url available to all other files you load after the definition.
Now in your javascript file you can do something like:
modpath: base_url + 'resources/plugins/twitter/',
Assume your base_url() is localhost/myapp/
Then use $this->config->base_url() in src like
<script src="<?= $this->config->base_url(); ?>resources/plugins/twitter/twitter.js"></script>
Check this with ur view file
<script src="<?php echo base_url();?>resources/plugins/twitter/twitter.js"></script>
I usually do this, in my View:
<script src="<?php echo base_url();?>resources/js/yourscript.js"></script>
<link rel="stylesheet" href="<?php echo base_url();?>"resources/css/bootstrap.css" />
to load resources (script files, or anything else) that stored locally.
Create js folder on the root where application and system folders are placed then place javascript file on that folder then on the view where you want to use this javascript file write down the following path:-
<script src="<?php echo $this->config->item('base_url') ?>js/fileName.js"></script>

Include script files on codeigniter view file

I am including a script file using the following line:
<script src="<?php echo FCPATH;?>includes/js/script_admin_index.js"></script>
But the error I am getting is:
GET http://localhost/var/www/treed/treed_admin/includes/js/script_admin_index.js (404 NOT FOUND)
instead of including the files.
I dont want to use base_url as user will be able to navigate and see the file through the browser as well.
You need to use the base_url() to include the javascript file in your VIEW.
For ex.
<script type="text/javascript" src="<?php echo base_url();?>js/jquery-ui.min.js" ></script>
For CSS you can use link_tag.
For ex: <?php echo link_tag('css/AdminLTE.css'); ?>
You will need the URL helper and html helper.
$this->load->helper('url');
$this->load->helper('html');
You can block direct all to js and css file.Read this

Using Joomla's baseurl to import javascript

I am trying to use Joomla's basurl to link to my javascript files like this:
<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/js/music.js"></script>
My code highlighting though seems out of whack and I am wondering if anyone knows how I should be writing this please?
if I use it in the css link everything looks fine there:
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/music/css/nav.css" type="text/css" />
Many thanks!
From looking at your include css and include js code it seems like your template is called music.
Therefore, you need to have your template's name as part of the path. Instead of /templates/js/ use /templates/music/js/
<script type="text/javascript" src="<?php echo $this->baseurl; ?>/templates/music/js/music.js"></script>

Categories

Resources