2017-09-14 105 views
0

我想用PHP獲取表單ID。 這是我的HTML代碼。問題中的每個答案都有一個ID。在PHP中獲取HTML表單ID

<br><br><h3>Vraag 1: Wat is de juiste formule van Arbeid?</h3> 

    <input type="radio" name="question-1" id="question-1-A" value="2" /> 
    <label for="question-1-A">A) Kracht (in Newton) keer Lengte (in meter) </label> 

    <input type="radio" name="question-1" id="question-1-B" value="0" /> 
    <label for="question-1-B">B) Kracht keer Massa</label> 

    <input type="radio" name="question-1" id="question-1-C" value="0" /> 
    <label for="question-1-C">C) Kracht keer valversnelling</label> 

    <input type="radio" name="question-1" id="question-1-D" value="0" /> 
    <label for="question-1-D">D) Geen van deze antwoorden</label> 

所以在PHP中,我得到的數值就是這樣,計算得分:

$q1=$_POST['question-1']; 

但我怎麼能偷的ID,並讓這個

if (*QUESTION-1-A* *IS FILLED IN*) 
{ 
    echo "You filled in A" 
} 

如何我要這樣做嗎?

+0

您可以在'value'屬性中傳入'id' –

+1

由於'id'僅在客戶端可用,因此PHP無法工作。以這種方式用'id'操縱的最好方法是使用JavaScript而不是PHP。 – d3r1ck

+1

你可以使用jquery獲取id,然後通過ajax發送給php –

回答

1

PHP只能訪問使用POST/GET傳遞的值,因此您無法訪問輸入ID或表單ID。然而 您可以創建一個隱藏的元素,如:

<br><br><h3>Vraag 1: Wat is de juiste formule van Arbeid?</h3> 

    <input type="radio" name="question-1[]" id="question-1-A" value="2" /> 
    <label for="question-1-A">A) Kracht (in Newton) keer Lengte (in meter) 
    </label> 

    <input type="radio" name="question-1[]" id="question-1-B" value="0" /> 
    <input type="hidden" name="question-1_ID[]" value="question-1-B" /> 
    <label for="question-1-B">B) Kracht keer Massa</label> 

    <input type="radio" name="question-1[]" id="question-1-C" value="0" /> 
    <input type="hidden" name="question-1_ID[]" value="question-1-C"/> 
    <label for="question-1-C">C) Kracht keer valversnelling</label> 

    <input type="radio" name="question-1[]" id="question-1-D" value="0" /> 
    <input type="hidden" name="question-1_ID[]" value="question-1-D" /> 
    <label for="question-1-D">D) Geen van deze antwoorden</label> 

現在,當您發佈的形式,你可以這樣做:

$questions = ["A","B","C","D"];  
foreach($_POST['question-1'] as $index => $response){ 
    if($response!==''){ 
     // then there is something in it. 
     echo "You filled in Question ".$questions [$index]; 
    } 
} 

希望這有助於。

+0

無論選擇何種答案,這都會得到相同的結果。 – Quentin

+0

作出所需的更改,謝謝。 –

+0

這些更改沒有幫助。只有選中的單選按鈕纔會成功,因此提交數據中唯一的索引將爲'0'。 – Quentin

2

你不能。 id僅適用於客戶端。

value是專爲您正在嘗試做的。改爲使用value

你需要給出不同的答案不同value s。您目前的value沒有意義。

+0

也許他在這種情況下的價值是爲了完成不同的目的:)。 – d3r1ck

+1

@ d3r1ck - 那麼這個目的應該用更合適的東西來實現(我推測這是'checked'屬性)。 – Quentin

+0

好吧,它只是這樣工作。我通過一起添加問題的值來計算分數。我也可以讓它的值= 1A,並且在PHP 1A = 2中,但爲什麼我得到一個downvote? –