2017-09-14 101 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? –