2016-05-14 153 views
-1

オプションに基づいてURLを介して変数を渡すgetメソッドの一部としてHTMLフォームのaction属性内にPHP変数を渡そうとしています選択された。私はURLの一部としてstaffID変数を渡すようにしようとしている。この特定のケースでPHP - getメソッドのURLの一部としての<form action = "">属性内の変数

<?php 
... 
$sql = "SELECT staffID, staffName 
FROM staff"; 

$results = mysqli_query($conn, $sql) 
or die ('Problem with query' . mysqli_error($conn)); 
?> 
    <form action = "task7.php?" method = "get"> 
     <select> 
     <?php 
     while($row = mysqli_fetch_array($results)) 
     { 
      $staffID = $row["staffID"]; 
      $staffName = $row["staffName"]; 
     ?> 
     <option value = "<?php echo $staffID ?>"> <?php echo $staffName ?> </option> 
     <?php 
     } 
     ?> 
     </select> 

     <br> <br> 
     <input type = "submit" value = "Submit"> 
     <input type = "reset" value = "Reset"> 

    </form> 

。このtast7.php?staffID=12345

+0

なぜフォームの隠し入力変数として渡していませんか?あるいは、それをMod_rewriteアドレス( '/ tast7/staff12345 /'にフォームを提出する) – Martin

+0

として渡して、何が問題になっていますか? – pes502

答えて

1

すべてのthatsはあなたがあまりにも複雑に考えているselect

<select name="staffID"> <!-- adding the name will append the selected value to the url --> 
    <?php 
    while($row = mysqli_fetch_array($results)) 
    { 
     $staffID = $row["staffID"]; 
     $staffName = $row["staffName"]; 
    ?> 
    <option value = "<?php echo $staffID ?>"> <?php echo $staffName ?> </option> 
    <?php 
    } 
    ?> 
</select> 
+0

おかげでほとんど問題なく動作しましたが、今私はURLにこれを取得しています tast7.php?

%24staffID = 12345 %24が必要です。 – Blocker

+0

%24は "$"でエンコードされたURLです。 – andrew

+0

私はこの'の代わりにstaffID ">'を使用します:前にも述べましたが、クライアント側では 'php'はありません。したがって、selectオプションにはリテラル名のみを使用します。その時、 "php変数"とは何も関係ありません。 – arkascha

+0

それは正しいです。私は今それを修正しました。助けてくれてありがとう。 – Blocker

1

<form action = "task7.php" method = "get"> 
    <select name="staffID"> 
    <?php 
    while($row = mysqli_fetch_array($results)) 
    { 
    ?> 

    <option value = "<?php echo $row["staffID"]; ?>"> <?php echo $row["staffName"]; ?> </option> 

    <?php 
    } 
    ?> 
    </select> 
    <br> <br> 
    <input type = "submit" value = "Submit"> 
    <input type = "reset" value = "Reset"> 
</form> 

あなたは簡単にjQuery/JSを使用してそれを行うことがあります。あなたはそれがすべてです、あなたの選択オプションに名前を付ける必要があります。

例:(jQueryの使用)

function formSubmit(element){ 
 
    var url = $("#test").attr("action", ""); 
 
    url += "?" + element.name + "=" + element.value; 
 
    $("#test").attr("action", url); 
 
    $("#test")[0].submit(); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<form action="test.php" method="get" id="test"> 
 
    <select name="id" onChange="formSubmit(this)"> 
 
    <option value="abc">abc</option> 
 
    <option value="xyz">xyz</option> 
 
    </select> 
 
</form>

関連する問題