PHP打印:quotes上带变量的Javascript函数
我只是想知道是否有更好的方法来写下传递给PHP打印内部调用的javascript函数的PHP变量:PHP打印:quotes上带变量的Javascript函数,php,javascript,function,quotes,Php,Javascript,Function,Quotes,我只是想知道是否有更好的方法来写下传递给PHP打印内部调用的javascript函数的PHP变量: while($nav = mysqli_fetch_array($nav_db)){ print '<li> <a href="#" onclick="getProductPage('.$nav['id'].', \''.$name.'\')"> '.$nav['Data'].'
while($nav = mysqli_fetch_array($nav_db)){
print '<li>
<a href="#" onclick="getProductPage('.$nav['id'].', \''.$name.'\')">
'.$nav['Data'].'
</a>
</li>';
}
是一个整数,因此JS不需要额外的“”,并且
$name
不是整数,所以我需要这些\'\'用于JS
特别是这一步:
getProductPage('.$nav['id'].', \''.$name.'\')
谢谢
<?php while($nav = mysqli_fetch_array($nav_db)): ?>
<li>
<a onclick="getProductPage(<?php echo $nav['id']; ?>, '<?php echo $name; ?>')">
<?php echo $nav['Data']; ?>
</a>
</li>
<?php endwhile; ?>
您应该使用将变量从php传递到javascript。这将确保没有未替换的字符可以破坏javascript
因此,json\u encode($name)
,而不是$name
,等等
例如:
print '<li>
<a onclick="getProductPage(' . (int) $nav['id'].', ' . json_encode($name) . ')">
' . htmlspecialchars($nav['Data']) . '
</a>
</li>';
print'
' . htmlspecialchars($nav['Data'])。'
';
您应该使用将变量从php传递到javascript。这将确保没有未替换的字符可以破坏javascript
因此,json\u encode($name)
,而不是$name
,等等
例如:
print '<li>
<a onclick="getProductPage(' . (int) $nav['id'].', ' . json_encode($name) . ')">
' . htmlspecialchars($nav['Data']) . '
</a>
</li>';
print'
' . htmlspecialchars($nav['Data'])。'
';
您是否考虑过使用jquery和ajax将数据发送到php文件并将json\u编码数组发送回javascript
范例
在使用数据类型json向php发送ajax调用后,返回如下vars
$data['id'] = nav['id'];
echo json_encode($data);
or just $nav['id']
echo json_encode($nav)
ajax{(
blah,
blah,
...
success(msg){
alert(msg.id)
}
})
在javascript中。成功后,您可以像这样检索id值
$data['id'] = nav['id'];
echo json_encode($data);
or just $nav['id']
echo json_encode($nav)
ajax{(
blah,
blah,
...
success(msg){
alert(msg.id)
}
})
您可以作为对象访问var
上面的代码将提醒id的值。您可以将msg.id分配给javascript变量或将其传递给函数…ect您是否考虑过使用jquery和ajax将数据发送到php文件并将json_encode数组发送回javascript
范例
在使用数据类型json向php发送ajax调用后,返回如下vars
$data['id'] = nav['id'];
echo json_encode($data);
or just $nav['id']
echo json_encode($nav)
ajax{(
blah,
blah,
...
success(msg){
alert(msg.id)
}
})
在javascript中。成功后,您可以像这样检索id值
$data['id'] = nav['id'];
echo json_encode($data);
or just $nav['id']
echo json_encode($nav)
ajax{(
blah,
blah,
...
success(msg){
alert(msg.id)
}
})
您可以作为对象访问var
上面的代码将提醒id的值。您可以将msg.id分配给javascript变量或将其传递给函数…ect谢谢。。我考虑过这个选项,但是我在HTML中包含了所有这些,尽管我可以使用php标记只是使用php的一部分。如果你不想输入echo,可以用速记。谢谢。你能更好地解释我,为什么我永远不应该在标签上留下href?“从不”可能是极端的。只是锚定标记希望被href或name用作锚定,因此,如果没有这两个标记中的任何一个,它可能被认为是无效的。它仍然可以工作,但如果您打算这样编写它,那么最好使用span标记。谢谢。。我考虑过这个选项,但是我在HTML中包含了所有这些,尽管我可以使用php标记只是使用php的一部分。如果你不想输入echo,可以用速记。谢谢。你能更好地解释我,为什么我永远不应该在标签上留下href?“从不”可能是极端的。只是锚定标记希望被href或name用作锚定,因此,如果没有这两个标记中的任何一个,它可能被认为是无效的。它仍然可以工作,但如果您打算这样编写它的话,还可以使用span标记。谢谢,我今天学习了一个新函数!为了确保我能在正确的模式下使用它,你能从开始给我写下整个部分吗?好的,谢谢,但是现在你也在为打印的var使用json_encode(没有传递给JS),那些\'\'仍然保留着!是吗?@user2120569哦,你是对的,那应该是htmlspecialchars
。如果没有额外的引号,它已经是一个js变量了。对于整数,我更喜欢强制转换,但那只是我自己。谢谢。。。不幸的是,它不工作!没有调用javascript函数,是否存在语法错误?如果我设置$link->set_字符集('UTF8');我需要再次使用htmlspecialchars吗?@user2120569只需在浏览器中查看html源代码,并使用html验证程序确保html正常。顺便说一下,htmlspecialchars
是对字符进行编码,比如
,这样它们就不会破坏html。当你输出到html时,不管字符集是什么,你总是需要它。谢谢你,今天我学习了一个新函数!为了确保我能在正确的模式下使用它,你能从开始给我写下整个部分吗?好的,谢谢,但是现在你也在为打印的var使用json_encode(没有传递给JS),那些\'\'仍然保留着!是吗?@user2120569哦,你是对的,那应该是htmlspecialchars
。如果没有额外的引号,它已经是一个js变量了。对于整数,我更喜欢强制转换,但那只是我自己。谢谢。。。不幸的是,它不工作!没有调用javascript函数,是否存在语法错误?如果我设置$link->set_字符集('UTF8');我需要再次使用htmlspecialchars吗?@user2120569只需在浏览器中查看html源代码,并使用html验证程序确保html正常。顺便说一下,htmlspecialchars
是对字符进行编码,比如
,这样它们就不会破坏html。无论字符集是什么,在输出到html时都需要它。