2

我在函数及其参数中遇到单引号和双引号问题。这是我的代码

$prev_page_arrow= "<span class='pagn_prev' onclick=\"send($where,'Page_{$this->name}=$prev&amp;{$this->rppGet}{$this->query_string}#$this->anchor');\" >Prev</span>";

问题在于我$where的函数参数send$where变量的值如下

$where = purpose="buy" and city="cityname"

或者

$where = purpose='buy' and city='cityname'

我可以在和引号中创建$where属性值。问题是当值在时,它会结束函数参数。例如singledoubledouble quotes

$prev_page_arrow= "<span class='pagn_prev' onclick=\"send(purpose="buy",'Page_{$this->name}=$prev&amp;{$this->rppGet}{$this->query_string}#$this->anchor');\" >Prev</span>";

这里的double引号表示带参数的函数结束。同样,如果我用single引号来做,这意味着参数结束。

如何解决?

4

2 回答 2

1

也许这会起作用?

$prev_page_arrow= "<span class='pagn_prev' onclick='send(purpose=\"buy\", \"Page_{$this->name}=$prev&amp;{$this->rppGet}{$this->query_string}#$this->anchor\");' >Prev</span>";
于 2013-09-24T12:21:53.850 回答
1

我建议将您的“位置”值放在data-*属性中,而不是尝试将其嵌入内联事件处理程序中。就此而言,无论如何您都不应该使用内联处理程序。

关键是,试试这个:

$prev_page_arrow="<span class='pagn_prev' data-where=\"".htmlspecialchars($where)."\"
     onclick=\"send(this.getAttribute('data-where'),'Page_........');\">Prev</span>";
于 2013-09-24T12:25:05.303 回答