【问题标题】:Need single code to work on multiple inputs需要单个代码来处理多个输入
【发布时间】:2019-01-31 01:34:31
【问题描述】:

我正在通过抓取图像文件夹来创建画廊,每个图像也有一个下拉菜单。我可以让代码适用于单个拆分值下拉列表,但是当我将代码添加到我的图像数组时,它只会拉取第一个选择,并且在提交时没有正确拆分值。如何使其适用于多个图像/下拉菜单?

<form action="test2.php" method="post">
<select name="location" id="location">
<option value = '' selected> None </option>
<option value = 'bsimage1:folder1'> folder1 </option>
<option value = 'bsimage2:folder2'> folder2 </option>
<option value = 'bsimage3:folder3'> folder3 </option>
</select>
<input type="submit" name="submit" class="btn btn-primary" 
onclick='brochure_select()' value="Submit">
<input type="hidden" id="fid" name="fid" value="" />
<input type="hidden" id="sid" name="sid" value="" />
<script>
function brochure_select() {
    var option_result = document.getElementById("location").value;
    var option_array=option_result.split(":");
     document.getElementById('fid').value = option_array[0];
    document.getElementById('sid').value = option_array[1];
}
</script>
<div>
<?php
if(isset($_POST['submit'])){
        $fid = $_POST['fid'];
        $sid = $_POST['sid'];   
        echo "You have selected : " .$fid. " to move to " .$sid; // Displaying Selected Value
print_r($_POST);        
};
?>
</div>

这里是多重选择器当前外观的示例:此代码将图像文件夹废弃并将它们输出到页面上的图库中,我为每个图像添加了一个下拉选择,但它没有传递值为每个图像选择正确的形式。这是一个网址示例。 http://mangamike.com/demo/index-split.php

  <?php 
// Image extensions
        $image_extensions = array("png","jpg","jpeg","gif");

        // Target directory
        $dir = 'images/';
        if (is_dir($dir)){

            if ($dh = opendir($dir)){
                $count = 1;

                // Read files
                while (($file = readdir($dh)) !== false){

                    if($file != '' && $file != '.' && $file != '..'){

                        // Image path
                        $image_path = "images/".$file;
                        $image_ext = pathinfo($image_path, PATHINFO_EXTENSION);

                        // Check its not folder and it is image file
                        if(!is_dir($image_path) && 

                            in_array($image_ext,$image_extensions)){
                            ?>
                        <div class="col-lg-4 col-md-2 col-sm-3 col-xs-4">
                            <!-- Image -->
                            <a href="<?php echo $image_path; ?>">
                                <img src="<?php echo $image_path; ?>" alt="" title="" height="auto" width="auto" style="max-width:350px;min-height:250px;"/>
                            </a>
                            <!-- --- -->
                            <div style="float:left;padding:5px;">

                             <div class="form-group">           
                            <label for="exampleFormControlSelect1">Brightsign Image Name - <strong><?php echo $file; ?></strong></label>
                            <select class="form-control" id="location" name="location[]" >
                                        <option selected disabled value="">Choose Location</option>
                                        <option value="closing">Closing Station</option>
                                        <option value="device">Device/ROF</option>
                                        <option value="merch1">General Merch 1</option>
                                        <option value="merch2">General Merch 2</option>
                            </select>
                            <input type="hidden" name="image_name[]" value="<?php echo $file; ?>" />
                        </div>          
                        </div>
                        </div>
                            <?php

                            // Break
                            if( $count%3 == 0){
                            ?>
    </div><div class="row">
                            <?php    
                            }
                            $count++;
                        }
                    }

                }
                closedir($dh);
            }
        }
        ?>

【问题讨论】:

  • 我不明白问题所在,也不明白代码。您是否介意以不同的方式解释问题,或者命名您正在显示的文件。第一个代码块(带有表单)是否提交到第二个代码块(test2.php)?
  • no 第二个块显示了我如何尝试实现第一个块,第二个块输出与正在抓取的文件夹中的图像一样多的 div,它也复制了下拉列表,但我我有一个问题,下拉值在提交时没有通过 JS 和 PHP 正确传递

标签: javascript php arrays forms


【解决方案1】:
  1. 在提交表单之前,javascript 不会更新您的隐藏输入
  2. 隐藏的输入不在表单中

也许有两个表单,第一个表单@onsubmit 你阻止默认拉出你想要的数据,把它塞进另一个表单并提交那个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多