【问题标题】:How to pass url parameters in jQuery如何在jQuery中传递url参数
【发布时间】:2012-01-31 14:29:14
【问题描述】:

我正在为复选框树实现 jQuery Easy UI 插件。从我的操作类加载节点数据时遇到问题。 url 属性似乎不接受参数 -

如果我给url: '/webapp/fetchData',我就能得到数据。但如果我给

url: '/webapp/fetchData?nodeId='+nodeId 我的操作类无法获取 nodeId 参数。 有什么解决办法吗?

编辑从评论中移植的代码:

onExpand: function(node) {
  alert("inside expand"); 
  var nodeId = node.id; 
  url: '/webapp/fetchdata?nodeId='+nodeId ; 
}

【问题讨论】:

  • 这里是完整的函数:onExpand:function(node) { alert("inside expand"); var nodeId = node.id; url: '/webapp/fetchdata?nodeId='+nodeId ; }
  • 在您更新的代码中,这一行什么都不做:url: '/webapp/fetchdata?nodeId='+nodeId; 它所做的只是创建一个名为urllabel,然后连接两个字符串并且对结果不做任何事情。我认为您需要显示更多代码才能获得有意义的答案。
  • 这里是我实现的复选框 tee 的文档页面。它还包含示例代码:http://www.jeasyui.com/documentation/tree.php

标签: javascript jquery tree jquery-easyui


【解决方案1】:

试试这个:

使用 POST

function DoAction( id, name )
{
$.ajax({
     type: "POST",
     url: "someurl.php",
     data: "id=" + id + "&name=" + name,
     success: function(msg){
                 alert( "Data Saved: " + msg );
              }
});
}

使用 GET

function DoAction( id, name )
{
 $.ajax({
      type: "GET",
      url: "someurl.php",
      data: "id=" + id + "&name=" + name,
      success: function(msg){
                 alert( "Data Saved: " + msg );
               }
 });
}

【讨论】:

  • 我正在使用 Easy UI 插件杉木复选框树。因此,这不会起作用,因为他们已经定义了自己的“数据”属性。
  • 如何将“URL”代码包装在括号中,有所作为? url: ('/webapp/fetchdata?nodeId='+nodeId);
【解决方案2】:

这对我有用:

解决方案 1:从静态 HTML javascript:在调用方:

function onBeforeLoad (node, data)
{
    data.Name=name;
}

调用方的 HTML:

<ul id="ScriptTree1" class="easyui-tree" lines="true" data-options="onBeforeLoad:onBeforeLoad, lines:true, processData:false" url="someural.php"/>

解决方案 2:来自动态代码: HTML

<ul id="ScriptTree2" class="easyui-tree" animate="true"></ul>

任何特定事件触发的Javascript函数:

function filltree ()
{
$('#ScriptTree2').tree
({  
        dataType:'json',
        method:'POST', 
        lines: true, 
        processData:false, 
        onBeforeLoad: function (node,param) { param.Name=name; return true;},
        onLoadError: function (dom) 
            { 
                if (!String.prototype.trim) 
                {
                    String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g, '');};
                }

                var sResponse = new String (arguments[0].responseText);

                alert ('Compl: ' + arguments[1] + ' ' + arguments[2].description + ' ' + arguments[2].name + '\r\nAnswer:\r\n' + sResponse.trim() + '\r\nQuery: \r\n' + decodeURIComponent(arguments.caller.caller.caller[0].data)); 

                return true;
            },
        url:'someurl.php'
    });
}

和被调用者脚本: someurl.php

<?
if ($_POST['Name']    != '') {$Name=$_POST['Name'];}      else {$Name='';};

if ($_POST) 
{
  $kv = array();
  foreach ($_POST as $key => $value) 
  {
    $kv[] = "$key=$value";
  }
  $query_string = join(" | ", $kv);
}

echo '[{"id":100,"text":"params","state":"open","children":[{"id":104,"text":"query_string: '.$query_string.'","state":"open"}]}]';
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多