您如何处理';,亲自单报价';php、javascript中的名称
我注意到一些名称条目,比如O'Rourke或O'reilly在某些情况下破坏了javascript。我不知道你是怎么处理的。我从PHP/MYSQL中提取这些名称,并将它们放入javascript中 您是在进入数据库之前还是在退出数据库之后替换它们 提前谢谢您如何处理';,亲自单报价';php、javascript中的名称,php,javascript,mysql,Php,Javascript,Mysql,我注意到一些名称条目,比如O'Rourke或O'reilly在某些情况下破坏了javascript。我不知道你是怎么处理的。我从PHP/MYSQL中提取这些名称,并将它们放入javascript中 您是在进入数据库之前还是在退出数据库之后替换它们 提前谢谢 google.load('visualization', '1', {packages:['table']}); google.setOnLoadCallback(drawTable); function drawTa
google.load('visualization', '1', {packages:['table']});
google.setOnLoadCallback(drawTable);
function drawTable() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'First Name');
data.addColumn('string', 'Last Name');
data.addColumn('string', 'email');
data.addColumn('string', 'Parent email 1');
data.addColumn('string', 'Parent email 2');
data.addColumn('string', 'Advisor');
data.addColumn('string', 'Active');
data.addColumn('string', 'Edit');
//data.addColumn('number', '');
data.addRows([
<?php
if(count($items))
{
foreach($items as $item)
{
foreach($advisors as $key=>$advisor)
{
if($item['advisor']==$advisor['id'])
{
$ad=$advisor['last_name'];
}
}
$active_icon = ($item['active']=='1'?'tick':'cross');
$editlink = anchor('auth/admin/members/form/'.$item['id'],$this->bep_assets->icon('pencil'));
echo "['".$item['first_name']."', '".$item['last_name']."', '".$item['email']
."', '".$item['parent_email1']."', '".$item['parent_email2']."', '".$ad."', '".$this->bep_assets->icon($active_icon)."','".$editlink."'],";
}
}
?>
]);
var table = new google.visualization.Table(document.getElementById('table_div'));
table.draw(data, {showRowNumber: true, allowHtml:true});
}
google.load('visualization','1',{packages:['table']});
setOnLoadCallback(drawTable);
函数drawTable(){
var data=new google.visualization.DataTable();
data.addColumn('string','First Name');
data.addColumn('string','Last Name');
data.addColumn('string','email');
data.addColumn('string','Parent email 1');
data.addColumn('string','Parent email 2');
data.addColumn('string','Advisor');
data.addColumn('string','Active');
data.addColumn('string','Edit');
//data.addColumn('number','');
data.addRows([
为了输出一个javascript变量,您需要进行大量混乱且容易出错的字符串追加工作。您应该做的是在PHP中构建所需的数据结构(数组数组),然后使用json_encode()
发出与javascript兼容的文字。编码器将自动转义所有引号等
$itemOutput = array();
if(count($items)) {
foreach($items as $item) {
foreach($advisors as $key=>$advisor) {
if($item['advisor']==$advisor['id']) {
$ad=$advisor['last_name'];
}
}
$active_icon = ($item['active']=='1'?'tick':'cross');
$editlink = anchor('auth/admin/members/form/'.$item['id'],$this->bep_assets->icon('pencil'));
$itemOutput[] = array(
$item['first_name'],
$item['last_name'],
$item['email'],
$item['parent_email'],
$item['parent_email2'],
$ad,
$this->beep_assets->icon($active_icon),
$editLink
);
}
}
echo "data.addRows(" . json_encode($itemOutput) . ");" ;
如果您有一个对象或关联数组,它将作为javascript对象发出:
echo json_encode(
array( 'a'=>'aa', 'b'=>'bb'),
array( 'c'=>'cc', 'd'=>'dd')
);
==> [{"a":"aa","b":"bb"},{"c":"cc","d":"dd"}]
您的实现是什么?您可能必须转义它们或将它们转换为HTML实体。有趣的是:如果您的数据源包含印刷字体(即“正确”)撇号('),而不是称为直撇号(')的丑陋折衷,您永远不会知道有什么问题……您使用什么将值放入数据库?很好的解决方案。比使用addslashes
要好得多。这样,您甚至不必使用字符串连接构建JS数组,而是可以直接编写本机PHP数组,并自动处理所有调用y、 我尝试了json_encode($item['first_name']),但它仍然给出了一个错误。重写答案。当你说“it still give a error”时,你指的是什么错误?