如何从循环内的表单文本字段中获取特定值?

时间:2018-04-18 20:37:49

标签: javascript php html

我忙于一个主要专注于显示数据库数据的学校项目。我们使用Google Maps API构建地图,以便您在点击它们时显示包含特定数据的标记。标记到标记的数据是自编写的JavaScript变量。一切正常,但现在是我真正的问题。我们还对数据集进行了概述,您可以轻松选择任何数据集。单击数据集时,您将被重定向到包含地图和特定数据的页面。我的问题是我需要将使用PHP和MySQL从数据库中获取的数据转换为等于地图变量的JavaScript变量。

我的想法是创建一个不可见的表单,其中有六个文本字段填充数据库行(此部分有效),接下来我必须获取属于单击的数据集的文本字段的特定值。唯一的问题是我使用循环生成数据集的概述,因此可以将数据添加到数据库中,并且不需要调整代码。但我不知道如何获得具体的价值。

我已经尝试了几种方法来实现这一点,包括getElementbyClass(工作但你总是需要定义数组编号),getElementbyID(只抓取第一个值,因为ID只能使用一次),getElementbyName(也只抓取第一个)价值)和一些与jQuery有关的东西:兄弟姐妹,接下来,抓住最接近的值的东西(但我得到一个空值)。

/代码低于/

HTML& PHP:

<?php
    $sql = "SELECT * FROM containers";
    $result = mysqli_query($connectie, $sql);
    if (mysqli_num_rows($result) > 0) {
        // output data of each row
        while($row = mysqli_fetch_assoc($result)) { ?>
           <div class="Border">

           <?php echo $row["container_address"]?>

        <form class="senddataform">

        <input type="text" name="addressField" id="addressField" value=" 
        =$row['container_address']?>">

        <input type="text" name="maxcontent" id="maxcontentField" value="<? 
        =$row['container_maxcontent']?>">

        <input type="text" name="name" id="nameField" value="<? 
        =$row['container_name']?>">

        <input type="text" name="beschikbaarheid" id="beschikbaarheidField" 
        value="<?=$row['container_beschikbaarheid']?>">

        <input type="text" name="gebruikt" id="gebruiktField" value="<? 
       =$row['container_gebruikt']?>">

       <input type="text" name="legingdagen" id="legingdagenField" value="<? 
       =$row['container_legingdagen']?>">

       </form>

<?php } ?>

我的空JavaScript函数:

 function sendContainerData(){

 }

需要填充数据的JavaScript变量:

var containerAddress =
var containerMaxcontent =
var containerName =
var containerBeschikbaarheid =
var containerGebruikt =
var containerLegingdagen =

1 个答案:

答案 0 :(得分:0)

您可以这样想:将需要与数据一起归档的变量声明为全局变量。然后在函数中,您可以按类从不可见的文本字段中获取元素(它返回可以通过索引访问的数组)。现在,由于您知道不可见文本字段的显示顺序(从PHP循环开始),您可以将每个文本字段的值分配给正确的变量。例如,第一个文本字段值可以映射到正确的变量,依此类推。像这样:

var containerAddress;
var containerMaxcontent;
var containerName;
var containerBeschikbaarheid;
var containerGebruikt;
var containerLegingdagen;

function sendContainerData(){
    var values = document.getElementByClass('someclass'); //returns an array
    //Now use your knowlege of the order of the textfields to map the values
    containerMaxcontent = values[0].value; //maps maxcontent to maxcontent variable
    containerName = values[1].values; //maps name text field to name variable
    containerBeschikbaarheid = values[2];//
    containerGebruikt = values[3]; //
    containerLegingdagen = values[4];
 }

然后您可以根据需要使用这些变量。请注意,您也可以为ID执行此操作。只有您需要将ID设为数组。您的所有ID都将显示为id="someID[]"。希望这很清楚,这有助于