Передать значение функции в скрытое поле в форме - PullRequest
0 голосов
/ 27 апреля 2020

Как я могу передать txt = txt + "\n" + x.options[i].value; скрытому полю в форме? Ниже мой код:

<form action="update.php" method="post">
    <input type=button class="master" name=b1 id=b1 value='Move >'>
    <input type=button class="master" name=b2 id=b2 value='< Remove'>&nbsp;&nbsp;&nbsp;&nbsp;
    <select name=category[] id=category multiple="multiple" class=master>

        <?php   
        $file = fopen("category.csv", "r");
        while (($row = fgetcsv($file, 0, ",")) !== FALSE) {
            $category = $row[0];
            ?>
            <option value="<?php echo $category;?>"><?php echo $category;?></option>
            <?php
        }
        ?>

    </select>
    <input type="hidden" name="master" id="master" value="">
    <input type="submit" value="Save File" onclick="displayResult()" name="submit" >
</form>

А вот мой обновленный JS.

<script>
    function displayResult() {
    var options = document.getElementById('master').options;

    var values = [];
    var i = 0, len = options.length;

    while (i < len)
    {
      values.push(options[i++].value);
    }

    txt=(values.join(','));
        alert(txt);
        document.getElementById('masterlist').value = txt;
        }
    </script>

Теперь работает на 100%. value = txt правильно передается в скрытое поле моей формы, и при отправке формы значения action="update.php" записываются в мои файлы master.csv и category.csv соответственно. При этом мое обновление. php file

<?php
header("Location:".$URL.'index.php');

if ($_POST['masterlist']) {
$list = $_POST['masterlist'];
$str_master = explode (",", $list);
foreach ($str_master as $key => $value) {
    $resultmaster.=$value. "\n";
}
file_put_contents('master.csv',$resultmaster);
}

if ($_POST['category']) {
$category = $_POST['category'];
$categoryunique = array_unique($category);
sort($categoryunique);
foreach ($categoryunique as $key => $value) {
    $resultcategory.=$value. "\n";
}
file_put_contents('category.csv',$resultcategory);
}
?>

1 Ответ

1 голос
/ 27 апреля 2020

Вы должны установить значение txt в вашей функции javascript следующим образом:

document.getElementById('master').value = txt;

Тогда значение должно быть установлено на ваше скрытое поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...