在web2py中调用Ajax,在#request.vars中传入#,以便在后面部分进行切换

时间:2015-12-16 19:20:17

标签: ajax web2py

var x = "www.something.com#something"

ajax("default?q="+x,"","");

这里,在控制器中,request.vars中获得的值仅为www.something.com 代替 www.something.com#东西

看起来像#之后写的任何内容都没有被考虑在内。

虽然在传递“名称”时它工作正常,但不确定为什么这在上述场景中不起作用。请帮忙。

1 个答案:

答案 0 :(得分:0)

网址中的#include<iostream> #include<vector> #include<stack> #include<algorithm> #include<fstream> #include<string> #include<sstream> using namespace std; typedef vector<int> vi; typedef vector<vi> vvi; #define N 875714 #define sz(a) int((a).size()) #define all(a) (a).begin(), (a).end() #define tr(c,i) for(typeof((c).begin()) i = (c).begin(); i != (c).end(); i++) vi v(N), ft, size; vi childsVisited(N); void DFS(vvi &g, int s, int flag) { stack<int> stk; stk.push(s); v[s] = 1; int jumpOut, count; if(flag == 2) count = 1; int counter = 0; while(!stk.empty()) { jumpOut = 0; int cur = stk.top(); for ( ;childsVisited[cur] < g[cur].size(); ++childsVisited[cur] ) //for ( int i=0; i< g[cur].size(); ++i ) //for(; i != g[stk.top()].end(); i++) { int i = childsVisited[cur]; int next = g[cur][i]; if(v[next] != 1) { stk.push(next); v[next] = 1; if(flag == 2) //Count the SCC size count++; jumpOut = 1; //Jump to the while loop's beginning break; } } if(flag == 1 && jumpOut == 0) //Record the finishing time order of vertices ft.push_back(stk.top()); if(jumpOut == 0) stk.pop(); } if(flag == 2) size.push_back(count); //Store the SCC size } void kosaraju(vvi &g, vvi &gr) { cout<<"\nInside pass 1\n"; for(int i = N - 1; i >= 0; i--) if(v[i] != 1) DFS(gr, i, 1); cout<<"\nPass 1 completed\n"; fill(all(v), 0); fill(all(childsVisited), 0); cout<<"\nInside pass 2\n"; for(int i = N - 1; i >= 0; i--) if(v[ ft[i] ] != 1) DFS(g, ft[i], 2); cout<<"\nPass 2 completed\n"; } int main() { freopen("input.txt","r",stdin); vvi g(N), gr(N); //ifstream file("/home/tauseef/Desktop/DAA/SCC.txt"); int first, second; //string line; unsigned long int cnt = 0; //while(getline(file,line,'\n')) //Reading from file //{ //stringstream ss(line); //ss >> first; //ss >> second; //if(first == second) //Eliminating self loops //continue; for ( int i = 0; i < 5105043; ++i ){ int first, second; scanf("%d %d",&first,&second); g[first-1].push_back(second-1); //Creating G & Grev gr[second-1].push_back(first-1); } //cnt++; //} cout<<"\nfile read successfully\n"; kosaraju(g, gr); cout<<"\nFinishing order is: "; sort(size.rbegin(), size.rend()); //Sorting the SCC sizes in descending order cout<<"\nThe largest 5 SCCs are: "; } 符号代表fragment#中不一定会包含一个片段,因此您需要使用某些内容对值request.vars进行编码像encodeURIComponent之前一样,在请求中发送它。