编码点火器-表格';s action属性-如何在javascript中指定完整的应用程序路径

编码点火器-表格';s action属性-如何在javascript中指定完整的应用程序路径,javascript,codeigniter,Javascript,Codeigniter,我的视图中有以下javascript: $.ajax({ url:"<?php echo site_url('switches/showknownvlans/'.$ip.'/'.$hardwaremodel);?>", type:'POST', dataType:'json', success: function(returnDataFromController) { //alert(returnDataFromController.len

我的视图中有以下javascript:

  $.ajax({
    url:"<?php echo site_url('switches/showknownvlans/'.$ip.'/'.$hardwaremodel);?>",
    type:'POST',
    dataType:'json',
    success: function(returnDataFromController) {
    //alert(returnDataFromController.length);
    var htmlstring;
    var submitFormHTML;
    htmlstring = "some html stuff";

    for(i = 0; i < returnDataFromController.length; i++) {

    }
    submitFormHTML = "<form method='post' accept-charset='utf-8' action='controllerX/methodABC/"+ $('#ip').val() +"/" + $('#hardwaremodel').val() +"/" + $('#port').val() + "'><input type='text' id='newVlanID' style='width:5em;height:1.5em'/>&nbsp;&nbsp;<button type='submit' class='btn' id='saveVlan' style='width:10em;height:2em'>Reassign Vlan</button></form>";
    alert(submitFormHTML);
    $('#clientajaxcontainer').html(htmlstring);
    $('#newvlanform').html(submitFormHTML);
<link href="<?php echo base_url();?>assets/css/bootstrap.css" rel="stylesheet">
    <script type='text/javascript'>
         var BASEPATH="<?php echo base_url();?>";
     </script>
当单击按钮提交表单时,它们将在以下位置结束:

 http://myserver/mypp/controller23/method123/controllerX/methodABC/
<link href="<?php echo base_url();?>assets/css/bootstrap.css" rel="stylesheet">
    <script type='text/javascript'>
         var BASEPATH="<?php echo base_url();?>";
     </script>
有没有办法在javascript中获取站点url()或基本url? 有什么建议吗?谢谢你阅读这篇文章

<link href="<?php echo base_url();?>assets/css/bootstrap.css" rel="stylesheet">
    <script type='text/javascript'>
         var BASEPATH="<?php echo base_url();?>";
     </script>
编辑:

<link href="<?php echo base_url();?>assets/css/bootstrap.css" rel="stylesheet">
    <script type='text/javascript'>
         var BASEPATH="<?php echo base_url();?>";
     </script>
根据某人的建议(我认为这是个好主意),我创建了一个名为“global.js”的新.js文件,其中有一行:

var BASEPATH = "<?php echo base_url(); ?>";
<link href="<?php echo base_url();?>assets/css/bootstrap.css" rel="stylesheet">
    <script type='text/javascript'>
         var BASEPATH="<?php echo base_url();?>";
     </script>
如您所见,它没有解释“”,而是按原样包含文本

<link href="<?php echo base_url();?>assets/css/bootstrap.css" rel="stylesheet">
    <script type='text/javascript'>
         var BASEPATH="<?php echo base_url();?>";
     </script>
但如果我忘了包含一个单独的js文件,只需执行以下操作:

<link href="<?php echo base_url();?>assets/css/bootstrap.css" rel="stylesheet">
    <script type='text/javascript'>
         var BASEPATH="<?php echo base_url();?>";
     </script>

操作实际上被正确调用。与href属性类似,如果不使用斜杠(
/
)启动它,它只会将值附加到当前页面的uri中,这就是您描述的行为

<link href="<?php echo base_url();?>assets/css/bootstrap.css" rel="stylesheet">
    <script type='text/javascript'>
         var BASEPATH="<?php echo base_url();?>";
     </script>
您有两个选项可以从HTTP主机的根目录引用此脚本:

<link href="<?php echo base_url();?>assets/css/bootstrap.css" rel="stylesheet">
    <script type='text/javascript'>
         var BASEPATH="<?php echo base_url();?>";
     </script>
以斜杠开始操作属性:

<link href="<?php echo base_url();?>assets/css/bootstrap.css" rel="stylesheet">
    <script type='text/javascript'>
         var BASEPATH="<?php echo base_url();?>";
     </script>
action="/controllerX/methodABC/"
或将完整路径添加到服务器,包括协议:

<link href="<?php echo base_url();?>assets/css/bootstrap.css" rel="stylesheet">
    <script type='text/javascript'>
         var BASEPATH="<?php echo base_url();?>";
     </script>
action="http://myserver/mypp/controllerX/methodABC/"

更新答案以匹配您的新问题

<link href="<?php echo base_url();?>assets/css/bootstrap.css" rel="stylesheet">
    <script type='text/javascript'>
         var BASEPATH="<?php echo base_url();?>";
     </script>
header.php

<link href="<?php echo base_url();?>assets/css/bootstrap.css" rel="stylesheet">
    <script type='text/javascript'>
         var BASEPATH="<?php echo base_url();?>";
     </script>
<base href="<?php echo base_url(); ?>" />

<link href="assets/css/bootstrap.css" rel="stylesheet">

<script>
 //global vars, can be used in any external js file
 var BASEPATH = "<?php echo base_url(); ?>";
 var IP       = "<?php echo $_SERVER['REMOTE_ADDR']";
</script>

<script src="assets/js/global.js"></script>

谢谢你的回复。我认为第一种选择是不对的。至少,我可以说它不起作用。它把我带到“myserver/controllerX/methodABC”。如果不需要,我希望不必完全限定路径。您是否在本地服务器上执行此操作?在这种情况下,您可能最好使用第二个选项,但它是从
site\u url()
生成的。因此,您将拥有
action=”“
。我建议不要在整个站点中使用
site\u url()
。在html的
元素中调用一次会方便得多,您可以在整个站点中编写
href='controller/function'
。我想试试您的建议。我喜欢全球VAR的想法。您是指我的应用程序文件夹根目录中的ci index.php吗?当我尝试这样做时,我收到了一条错误消息:Parse error:syntax error,unexpected'Sorry not ci index.php,而是模板文件(default.php)或您所称的任何文件。Philip,我在header.php文件中添加了指向新“global.js”文件的链接,该文件包含在每个视图中。它只有一行:var BASEPATH=;但是BASEPATH变量为空。没有错误,但也没有值。它需要在双引号“”中,因为它是字符串。刚刚看到你更新的问题。该值不在“src”内。让我更新我的答案嘿Philip,你在我的“src”中看到的价值是其他东西。但我会将我的全局js改为在其周围加上双引号,看看这是否有帮助。