Javascript onclick in php echo,错误为无效的意外标记

Javascript onclick in php echo,错误为无效的意外标记,javascript,php,Javascript,Php,当用户选中复选框时,我试图添加onclick函数,然后将显示总价。 包括价格在内的所有信息都是从数据库中检索的(检索数据没有问题,数据显示正确)。 下面是代码的样子 //计算价格 函数总数(){ var cal=document.getElementsByName('event'); var合计=0; 对于(变量i=0;i

当用户选中复选框时,我试图添加onclick函数,然后将显示总价。
包括价格在内的所有信息都是从数据库中检索的(检索数据没有问题,数据显示正确)。
下面是代码的样子

//计算价格
函数总数(){
var cal=document.getElementsByName('event');
var合计=0;
对于(变量i=0;i

选择事件
事件1
事件2
总成本
全部的

为什么要用这么多“\”?
total()
后面的星号“*”代表什么? 我尝试了下面的代码片段,它似乎工作得很好。 (仅更改php代码中的回显行)

echo”\t
.filter\u var($event['eventTitle'],filter\u SANITIZE\u SPECIAL\u CHARS)
{$event['eventStartDate']}
{$event['eventEndDate']}
{$event['catDesc']}
{$event['venueName']}
{$event['eventPrice']}
\n”;

不要内联事件处理程序

getElementsByName也是复数形式,返回一个集合:

document.getElementsByName(“总计”)[0]。值

删除内联事件,改为使用

//计算价格
函数总数(){
var cal=document.getElementsByName('event[]);
var合计=0;
对于(变量i=0;i
如果您不在其他任何地方使用total,请

var checks = document.getElementsByName('event[]');
for (var i = 0; i < checks.length; i++) checks[i].onclick = function() {
  var cal = document.getElementsByName('event[]');
  var total = 0;
  for (var i = 0; i < cal.length; i++) {
    if (cal[i].checked) {
      total += parseFloat(cal[i].getAttribute("data-price"));
    }
  }
  document.getElementsByName("total")[0].value = "$" + total.toFixed(2);
}
var checks=document.getElementsByName('event[]);
对于(var i=0;i
var checks=document.getElementsByName('event[]);
对于(var i=0;i

标题1
1-1-2018
2-2-2018
事件1
地点1
100
标题2
2-2-2018
3-3-2018
事件2
地点2
200
总成本
全部的

“\”用于字符串转义,当我删除它时,它的gv me total()不是一个函数。先生,它仍然不起作用,我要做的是删除onclick=total(),然后将代码添加到以下函数中函数total(){var-cal=document.getElementsByName('event[]);var-total=0;for(var i=0;i因此如果(cal[i]),您还有另一个错误
if(cal[i]。选中){
not
if(cal[i].getAttribute(“数据价格”)。选中)
非常感谢,但是当我选中复选框时,没有发生任何事情,控制台上也没有显示错误。请在您的问题中使用
代码段编辑器,并发布至少两个复选框的查看源代码,总计字段和JavaScriptSee my snippet-您需要将总计添加到已编辑问题的总计字段中-但是现在原来的代码不见了。。。
var checks = document.getElementsByName('event[]');
for (var i = 0; i < checks.length; i++) checks[i].onclick = function() {
  var cal = document.getElementsByName('event[]');
  var total = 0;
  for (var i = 0; i < cal.length; i++) {
    if (cal[i].checked) {
      total += parseFloat(cal[i].getAttribute("data-price"));
    }
  }
  document.getElementsByName("total")[0].value = "$" + total.toFixed(2);
}