Php 如何向onclick函数发送带有空格的url和/或字符串?

Php 如何向onclick函数发送带有空格的url和/或字符串?,php,javascript,html,Php,Javascript,Html,我有一个innerHTML声明如下: newdiv.innerHTML = '<a href=\'#\' onclick=genGroups('+userid+',\''+coursename+'\','+url+')>'+coursename+'</a>'; 我无法通过onclick发送任何url和/或字符串变量,例如coursename,其中包含空格。与spaceincase of string和URL相关的错误需要一个after参数。有什么想法吗?我认为url也应

我有一个innerHTML声明如下:

newdiv.innerHTML = '<a href=\'#\' onclick=genGroups('+userid+',\''+coursename+'\','+url+')>'+coursename+'</a>';

我无法通过onclick发送任何url和/或字符串变量,例如coursename,其中包含空格。与spaceincase of string和URL相关的错误需要一个after参数。有什么想法吗?

我认为url也应该被引用

而onclick=。。。用双引号就好了

newdiv.innerHTML = '<a href=\'#\' onclick="genGroups('+userid+',\''+coursename+'\',\''+url+'\')">'+coursename+'</a>';

我认为url也应该被引用

而onclick=。。。用双引号就好了

newdiv.innerHTML = '<a href=\'#\' onclick="genGroups('+userid+',\''+coursename+'\',\''+url+'\')">'+coursename+'</a>';

使用函数方法添加单击处理程序,而不是内联处理程序:

newdiv.innerHTML = "<a href='#'>"+coursename+"</a>";

var a = newdiv.getElementsByTagName('a')[0];
a.addEventListener('click', function() { genGroups(userid, coursename, url); });

另外,请注意使用不同形式的引号,这样就不必转义嵌入的引号。

使用函数方法添加单击处理程序,而不是内联处理程序:

newdiv.innerHTML = "<a href='#'>"+coursename+"</a>";

var a = newdiv.getElementsByTagName('a')[0];
a.addEventListener('click', function() { genGroups(userid, coursename, url); });

另外,请注意使用了不同形式的引号,因此您不必转义嵌入的引号。

您可以通过jQuery轻松地完成这一任务,尝试类似的方法,这对您的应用程序来说更为简洁和灵活

var your_user_id = 1,
    your_course_name = 'whatever',
    your_url = 'nice url';

var genGroups = function(params){
    alert(params.userId);
    alert(params.coursename);
    alert(params.url);
};
// create a new empty link
var $myDiv = $('.myDiv'),
    $newLink = $('<a>');

// to store your meta properties as html data
$newLink.data({
    'userId':your_user_id,
    'coursename':your_course_name,
    'url':your_url
}).text(your_course_name);

// append the new link
$myDiv.append($newLink);


// bind the click event anywhere in your code
$myDiv .on( 'click','a', function() {
    var linkData = $(this).data();
    genGroups( linkData );
});

通过jQuery,你可以很容易地做到这一点,尝试类似的东西,这对你的应用程序来说更干净、更灵活

var your_user_id = 1,
    your_course_name = 'whatever',
    your_url = 'nice url';

var genGroups = function(params){
    alert(params.userId);
    alert(params.coursename);
    alert(params.url);
};
// create a new empty link
var $myDiv = $('.myDiv'),
    $newLink = $('<a>');

// to store your meta properties as html data
$newLink.data({
    'userId':your_user_id,
    'coursename':your_course_name,
    'url':your_url
}).text(your_course_name);

// append the new link
$myDiv.append($newLink);


// bind the click event anywhere in your code
$myDiv .on( 'click','a', function() {
    var linkData = $(this).data();
    genGroups( linkData );
});

你的报价有问题。试试这个:

newdiv.innerHTML = '<a href="#" onclick="genGroups('+userid+',\''+coursename+'\',\''+url+'\')">'+coursename+'</a>';

我建议你使用不引人注目的JS。您可以将userid、coursename和url作为数据存储在a中,并绑定一个click事件。你甚至可以从anchor那里找到coursename

您的报价有问题。试试这个:

newdiv.innerHTML = '<a href="#" onclick="genGroups('+userid+',\''+coursename+'\',\''+url+'\')">'+coursename+'</a>';

我建议你使用不引人注目的JS。您可以将userid、coursename和url作为数据存储在a中,并绑定一个click事件。你甚至可以从anchor那里找到coursename

为什么。为什么要这样做。我需要生成一个课程名称列表,单击它们,它们对应的组将在其他div中生成。实际上,我正在加载第一个div,其中包含从数据库调用动态创建的新div。这是一个弹出模式,其中有三个div并排出现。有什么想法吗?现在对JQuery不感兴趣。你能说得更准确些吗?您可能知道url不能包含空格它们变成了%20?如果这就是你的意思?如果我错了,请多解释一点不,我在两个不同的案例中得到了两个不同的错误。一个代表字符串一个代表url。“+userid+”、\+coursename+“\”、“+url+”对吗?或者应该是:“+userid+”\”、“+coursename+”\”、“+url+”为什么。为什么要这样做。我需要生成一个课程名称列表,单击它们,它们对应的组将在其他div中生成。实际上,我正在加载第一个div,其中包含从数据库调用动态创建的新div。这是一个弹出模式,其中有三个div并排出现。有什么想法吗?现在对JQuery不感兴趣。你能说得更准确些吗?您可能知道url不能包含空格它们变成了%20?如果这就是你的意思?如果我错了,请多解释一点不,我在两个不同的案例中得到了两个不同的错误。一个代表字符串一个代表url。“+userid+”、\+coursename+“\”、“+url+”对吗?或者应该是:“+userid+”\”、“+coursename+”\”、“+url+”