57385


大変お世話になっております。

以下の様にformのsubmitをjsを利用して自動でクリックされる仕様にしておりますが、ページ上に送信という文字およびそれを囲むボックスが表示されます。

このボックス、および送信という文字を非表示にさせ、ぺージ自体に何も表示させず、次のページに行き着く様にしたいです。

どうすれば非表示にできるかお教え願いませんでしょうか。

[code]

    <?php
    ///////////////
    phpの記述
    ///////////////
    ?>
    
    <form action='xxxxxxx.php' METHOD='POST'>   
    <input type="submit"  id="submit" />    
    </form>
    
    <head>
    <script>  
    document.getElementById("submit").click();
    </script>
    
[/code]


CC BY-SA 4.0
2019-08-15T18:15:15.333
57380
2019-08-16T00:24:58.073
19211
question
php form
formのsubmit(送信)を非表示にしたいです。


表示したくないボックスに`display:none;`のスタイルを当てれば、画面上に表示しなくなります

[code]

    <form action='xxxxxxx.php' METHOD='POST' >
    <input type="submit"  id="submit" style="display:none;" />    
    </form>
    
[/code]

送信フォームを表示しないなどのいわゆる画面の装飾は一般的にビュー側（HTML、CSS）の領域になります。  
PHP側では特には何もできないです。

さらに、何もしないで別のPHPにPOSTするのであれば、POST先が自分のアプリケーション責任範囲であればわざわざ画面を呼び出して再POSTするのではなく、実行したい処理を関数化などすれば画面の遷移が少なくなると思います。

## 画面遷移するPHP

POSTするPHP

[code]

    <?php
    ///////////////
    phpの記述
    ///////////////
    ?>
    
    <form action='xxxxxxx.php' METHOD='POST'>
    <input type="hidden"  name="aaa"  value="1"/>    
    <input type="hidden"  name="bbb"  value="2"/>    
    <input type="submit"  id="submit" />    
    </form>
    
    <script>  
    document.getElementById("submit").click();
    </script>
    
[/code]

xxxxxxx.php

[code]

    <?php
    $aaa = $_POST["aaa"];
    $bbb = $_POST["bbb"];
    //ここに何らかの処理
    //今回は単純に足し算
    echo $aaa + $bbb;
    
[/code]

## 関数化した場合

元POSTするPHP

[code]

    <?php
    ///////////////
    phpの記述
    ///////////////
    require_once("func/xxxxxxx.php");
    xxxxxxx(1,2);
    ?>
    
[/code]

xxxxxxx.php

[code]

    <?php
    $aaa = $_POST["aaa"];
    $bbb = $_POST["bbb"];
    require_once("func/xxxxxxx.php");
    xxxxxxx($aaa,$bbb);
    
[/code]

func/xxxxxxx.php

[code]

    <?php
    function xxxxxxx($aaa, $bbb) 
    {
    echo $aaa + $bbb;
    }
    
[/code]


CC BY-SA 4.0
2019-08-16T00:24:58.073
57385
2019-08-16T00:24:58.073
22665
57380
answer