Php Javascript在同一ID上有多个值

Php Javascript在同一ID上有多个值,php,javascript,sajax,Php,Javascript,Sajax,我在php中有一个循环,它回显一个 每次循环通过时,我都会在隐藏的输入字段中得到一个新值,这一点您可以理解 现在,我试图从每个项目中获取值,并使用Javascript和SAJAX获取它。 我现在使用的javascript可以工作了,但是!它只获取第一个值(因为每个输入上的ID相同) 脚本: function Showbooking() { id = document.getElementById('lol').value; x_showBookingForm(id, do_sho

我在php中有一个循环,它回显一个

每次循环通过时,我都会在隐藏的输入字段中得到一个新值,这一点您可以理解

现在,我试图从每个项目中获取值,并使用Javascript和SAJAX获取它。 我现在使用的javascript可以工作了,但是!它只获取第一个值(因为每个输入上的ID相同)

脚本:

function Showbooking() {
    id = document.getElementById('lol').value;
    x_showBookingForm(id, do_showBookingForm);
}
function do_showBookingForm(html) {
    openPopup(600, 550, html);
}
正如您所见,我也用javascript打开了一个弹出窗口,并将值导出到该弹出窗口中

所以每次弹出窗口我都会得到相同的值(第一次输入的值)

我该如何避开这个问题

  • 将ID更改为名称
  • 使用document.getElementsByName和循环
  • var-lols=document.getElementsByName(“lol”);
    var VAL=[];
    
    for(var i=0,n=lols.length;i
    getElementById
    表示元素而不是元素,因为它只返回一个项。
    id
    应该是唯一的。您可以执行以下操作:

    var inputs = document.getElementsByTagName("input");
    var values = [];
    for(var i=0;i<inputs.length;i++){
        if(inputs[i].type === "hidden"){
            values.push(inputs[i].value;
        }
    }
    
    var inputs=document.getElementsByTagName(“输入”);
    var值=[];
    
    对于(var i=0;如果“id”属性存在,则该属性在页面上必须是唯一的。也就是说,您不能共享“id”值。如果您想要“分类”元素的效果,可以使用“class”属性。如果您不增加循环中的值,它怎么会不一样呢?您是想使用
    $id[$i]
    或其他类似变量?不,我没有使用$id。$i。我试图获得有关如何解决此问题的帮助。这可能是一个解决方案,但是否有其他方法?@oBo您正在尝试做一些明确定义为导致未定义、不可预测行为的事情。如果您做其他事情,事情会变得更好:-)如果使用“class”属性,则可以使用
    .getElementsByClassName()
    (在现代浏览器中)…或者按照mplungjan的建议使用“name”属性。小心使用
    name
    对非无线电输入进行分组。iirc,
    name
    是用来识别已发布数据的。当然,如果您不关心从服务器端获取这些内容,这并不重要……但可能值得一提。当我使用name或Classname时,我会得到未定义的值。id=document.getElementsByClassName('lol')。值;
    var inputs = document.getElementsByTagName("input");
    var values = [];
    for(var i=0;i<inputs.length;i++){
        if(inputs[i].type === "hidden"){
            values.push(inputs[i].value;
        }
    }