PHP上带有vars的Javascript函数print:引号
Javascript function with vars on PHP print: quotes
我只是想知道是否有更好的方法来写下传递给PHP打印中调用的javascript函数的PHP变量
while($nav = mysqli_fetch_array($nav_db)){
print '<li>
<a href="#" onclick="getProductPage('.$nav['id'].', '''.$name.''')">
'.$nav['Data'].'
</a>
</li>';
}
其中
$nav['id']
是一个整数,所以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编写html。这样比较干净。此外,您有一个无赖的</span>
,在<li>
菜单中不需要<br>
。此外,a
标签中应该有一个href
值,即使它是#
或javascript:void(0)
或其他什么。
您应该使用json_encode
将变量从php传递到javascript。这将确保没有可以破坏javascript的未转义字符。
所以json_encode($name)
而不是$name
等
例如:
print '<li>
<a onclick="getProductPage(' . (int) $nav['id'].', ' . json_encode($name) . ')">
' . htmlspecialchars($nav['Data']) . '
</a>
</li>';
您是否考虑过使用jquery和ajax将数据发送到php文件并将json_encode数组发送回javascript?
示例
在向php发送数据类型为json的ajax调用后,返回如下所示的vars
$data['id'] = nav['id'];
echo json_encode($data);
or just $nav['id']
echo json_encode($nav)
在您的javascript中。成功后,您可以像下面的一样检索id值
ajax{(
blah,
blah,
...
success(msg){
alert(msg.id)
}
})
可以将var作为对象访问上面的代码将提醒id的值。您可以将msg.id分配给javascript var或将其传递给函数。。。ect
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 如何在JavaScript中将字符串转换为函数引用
- 用嵌套函数和默认函数定义函数
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 在终端中运行 JavaScript 时(使用 rhino),如何使用 print() 函数在一行中打印
- 在Debian中运行包含load()和print()函数的JS脚本
- 如何在javascript window.print()函数中打印MathML
- 如何在javascript print()函数中设置字体大小
- 将 HTML 发送到 window.print 函数而不呈现
- 在为 QScriptEngine 重新定义 “print()” 函数时返回“未定义的值”有什么意义?
- 如何在打印机不可用时测试JavaScript的window.print函数
- PHP上带有vars的Javascript函数print:引号
- 使用javascript的Print函数打印弹出窗口
- 如何创建返回间隔为boolean + input&print out的函数(number, from, to)
- Print函数停止jquery post
- codeigniter自动递增ID,可以在视图和Javascript的windows . print()函数中看到
- 从php调用和执行javascript函数echo call (print)
- QZ-Print Java Applet中的调用函数在PHP中不起作用
- 如何使用javascript的windows .print()函数从打印页面中删除url文本