2017-10-29 41 views
-1

私はcli結果を取得してブラウザに表示するために使用したphpページを持っています。同じコマンドの異なるバリエーションを実行するために2回目の 'submit'を追加しましたが、両方に同じ入力値を使用したかったのです。理想的には、2つの送信ボタンが必要ですが、入力は1つだけです。それは私が問題を抱えているちょうど "選択"ボックスです。PHP - 異なるPOSTに同じ入力を使用

<form action=""method="post"> 
Username:<br><input type="text" name="user" size="20" tabindex="1"> 
Password:<br><input type="password" name="password" size="20" tabindex="2"> 
<!--  --> 
<select name="ValueName" size="32" tabindex="3"> 
<option value="MyValue1">ValueExample1</option> 
<option value="MyValue2">ValueExample2</option> 
<!--  --> 
<button type="submit" style="text-align: left; width:170px; height:25px;   
float:left; " name="test">Test1</button> 
<button type="submit" style="text-align: left; width:170px; height:25px;  
float:left; " name="test2">Test2</button> 
<!-- Php Section --> 
<?php 
$user = $_POST['user']; 
$password = $_POST['password']; 
$ValueName = $_POST['ValueName']; 
$test = $_POST['Test']; 
$test2 = $_POST['Test2']; 

if (isset($_POST['test'])) 
$cmd = "/usr/bin/curl -k --user $user:$password https://IPADDRESS/DIR1/$ValueName"; 
if (isset($_POST['test2'])) 
$cmd = "/usr/bin/curl -k --user $user:$password https://IPADDRESS/DIR2/$ValueName"; 

while (@ ob_end_flush()); // end all output buffers if any 

$proc = popen($cmd, 'r'); 
echo '<pre>'; 
while (!feof($proc)) 
{ 
    echo fread($proc, 4096); 
    @ flush(); 
} 
echo '</pre>'; 
?> 

私の問題はこれです。この例のページでは、「test2」は実行しませんが、「test」のsubmit関数は機能します。基本的には同じコマンドですが、わずかな違いがあります。これを動作させるには、htmlの2番目の選択ボックスを追加する必要がありました。

<select name="ValueName2" size="32" tabindex="3"> 
<option value="MyValue1">ValueExample1</option> 
<option value="MyValue2">ValueExample2</option> 

次にphpセクションに追加します。

$ValueName2 = $_POST['ValueName2']; 

変更されました。

if (isset($_POST['test2'])) 
$cmd = "/usr/bin/curl -k --user $user:$password https://IPADDRESS/DIR2/$ValueName2"; 

私がしたいのは、1つのボックスを使用するだけです。今すぐページ上に2つの選択ボックスと2つの送信ボタンがあります。 "username"と "password"のボックス は、両方の送信に使用できます。私は2つの異なるサブミットボタンを持つことで問題なく、2つの異なる "選択"ボックスを使用しなければならない(特に同じものなので)。

+0

あなたの 'select'は閉じられていません...あなたはおそらくそれを見たいと思っています – Samuel

+0

すばやく返信いただきありがとうございます。私はあなたが示唆したようにして、閉じるために少し短いjavascriptを追加することを発見しました。おかげで –

答えて

1

この同じ問題は、ここに解決策です。サムエルが示唆したように、selectは閉鎖されていなかったので、私は、検索およびこれを見つけた - https://stackoverflow.com/a/15526451/5645436

<script type="text/javascript> 
self.close(); 
</script> 

2つの異なるボタンを提出した直後に挿入し、ページが完全に動作します。

+0

あなたは芽を出す...それのような小さなものは巨大な違いを作る。おめでとうございます – Samuel

0

私はあなたの答えを参照してください、しかし、私はあなただけを閉じることをお勧めしますselect ... Javascriptを使用することは最善の解決策ではありません。

<form> 
    <select name="ValueName" size="32" tabindex="3"> 
    <option value="MyValue1">ValueExample1</option> 
    <option value="MyValue2">ValueExample2</option> 
    </select> <!--CLOSE YOUR SELECT--> 

    <button type="submit" style="text-align: left; width:170px; height:25px; float:left; " name="test">Test1</button> 
    <button type="submit" style="text-align: left; width:170px; height:25px; float:left; " name="test2">Test2</button> 
</form> 

あなたが遭遇する可能性のあるエラーを修正する必要があります。それはHTMLのベストプラクティスであり、正しいタグでタグを閉じます。

+1

今は面白いですが、選択を閉じると言ったら、私はPHPのセクションを見ていました。私はPHPの次に何も知らないので、私はいくつかの機能を追加しなければならないと思った。私はをhtml部分に追加していないことは見たことがありません。さらに皮肉なのは、後でページの時間に戻って見やすくするために、私は誤ってクローズアップし直さなければならないということです。今のところ、ページが機能し、JavaScriptがなくなったからです。これを手伝ってくれてありがとうサミュエル –

+0

問題ない@SeanWコーディングをしてください! – Samuel

関連する問題