2

我似乎无法弄清楚这一点。我正在尝试使用 Javascript 来选择输入值。问题是表单正在通过一个 php 数组循环,该数组获取 eve 使得每个表单都具有相同的名称,并且输入的名称。javascript 只会让我得到第一个表单的值。我已经尝试将表单放入数组中,[]但我无法得到它..请帮忙。

    $find = mysql_query("
       SELECT `name`, `desc`, LEFT(`desc`, 80),`price`, `page`, `id`
       FROM `bang` 
       ORDER BY id ASC LIMIT 2 ") or die(mysql_error());

       while($resultt= mysql_fetch_array($find)){
          echo '<form id="linkcenter" action="">';
          echo '<input type="hidden" value="'.$resultt['id'].'" id="linkcenterr" name="linkcenterr"';
          echo '<input type="button" name="butn" value="Send" onClick="loadInfoo()">';
          echo '</select>';
          echo '</form>';
    }

Javascript 和 jQuery 在单独的文件中:

    function loadInfoo() {  
       var id = document.getElementById('linkcenterr').value;
       //ajax and more java bellow that i know is working..
    } 

我使用 jquery 只是为一个框设置动画,然后这个输入通过 javascript 并发送到一个 php 文件,该文件运行一个 sqlquery 并回显数据库中的所有数据。

我知道所有其他代码都在工作,问题是我不知道如何将这些表单格式化为数组,以便 javascript 在单击时可以获取每个值。

4

3 回答 3

2

HTML 元素中的id属性对于文档必须是唯一的。id='linkcenterr'您对所有表单输入和标签都使用相同的<form>,这是无效的。大多数浏览器只会选择第一个。

您必须为每个节点提供唯一的 ID:

while($resultt= mysql_fetch_array($find)){
    // Use $resultt['id'] in the node id
    echo '<form id="linkcenter' . $resultt['id'] . '" action="" class="linkcenter-form">';
    // Use $resultt['id']  with another string in the node id
    // Don't forget to close the tag > here.
    echo '<input type="hidden" value="'.$resultt['id'].'" id="input_linkcenterr' . $resultt['id'] . '" name="linkcenterr" class="linkcenterr-input">' ;
    echo '<input type="button" name="butn" value="Send" onClick="loadInfoo()">';
    echo '</select>';
    echo '</form>';
}

然后,在您的 JavaScript 中,您必须通过 单独定位它们document.getElementById()或通过 分组定位它们document.getElementsByTagName()

如果您使用已标记的 jQuery,则可以使用以下命令定位所有表单:

// Get all by class
var forms = $('form.linkcenter-form');

// Get all the inputs by class
var inputs = $('input.linkcenterr-input');

在您的函数loadInfoo()中,您应该将$resultt['id']作为参数传递,您可以使用它来按 id 定位元素。

 // Pass the id into the function
 echo '<input type="button" name="butn" value="Send" onClick="loadInfoo(' . $resultt['id'] . ')">';

并定义函数以在其选择器中使用 id 参数:

function loadInfoo(idVal) {  
    // Concatenate the id param with onto linkcenterr:
    var id = document.getElementById('input_linkcenterr' + idVal).value;

    // Or the jQuery version:
    var id = $('#input_linkcenterr' + idVal).val();
} 
于 2012-11-07T00:43:01.020 回答
0

只需在循环中实现一个计数器并将计数器值添加到 id 中,如下所示:

$i=0;
while($resultt= mysql_fetch_array($find)){
    echo '<form id="linkcenter'.$i.'" action="">';
    echo '<input type="hidden" value="'.$resultt['id'].'" id="linkcenterr'.$i.'" name="linkcenterr"';
    echo '<input type="button" name="butn" value="Send" onClick="loadInfoo('.$i.')">';
    echo '</select>';
    echo '</form>';
    $i++;
}

然后根据传递的参数调整您的javascript以获取值

function loadInfoo(index) {  
var id = document.getElementById('linkcenterr'+index).value;
//ajax and more java bellow that i know is working..
} 
于 2012-11-07T00:43:48.617 回答
0

给出<form>一个class属性并使用它来获取表单。例如

HTML:

<form class="my_forms">
...

查询:

var forms = $(".my_forms");
于 2012-11-07T00:44:43.257 回答