如何向PHP发送2个以上的表单?

时间:2016-11-21 12:16:42

标签: javascript php jquery html forms

我得到了一项任务,它是:

  

制作处理表单的网站/页面。你应该至少有4个问题/表格,你需要在php中处理它。之后,您应该能够告诉用户他们出错了什么以及他们做对了什么。你也应该能够写出你的名字,它应该出现在某个地方的php网站上。

所以我在这里有一个网站,到目前为止我有3个问题(我想在我全力以赴之前尝试)。我使用jQuery来隐藏和显示问题,我使用无线电输入和文本输入作为名称。当我点击提交时,我几乎尝试了一切。目前正在使用jQuery:

$(".knapp3").click(function() {
        $('#fraga1, #fraga2, #name, #fraga3').submit();
});

php只处理#name中的值,这是我的文本输入。我的表单看起来像这样:



<div class="fraga1">
<h1>Hejsan?</h1><br>
<form id="fraga1" action="idk.php" method="POST">
<input type="radio" name="tva" value="1">hej<br>
<input type="radio" name="tva" value="12">Hejsan<br>
<input type="radio" name="tva" value="13">Tjena<br>
</form>
</div>

<div class="fraga2">
<h1>Vad heter jag?</h1><br>
<form id="fraga2" action="idk.php" method="POST">
<input type="radio" name="tva" value="2">qqq<br>
<input type="radio" name="tva" value="22">123<br>
<input type="radio" name="tva" value="23">xxx<br>
</form>
</div>

<div class="fraga3">
<h1>Vilken linje går jag?</h1>
<form id="fraga3" action="idk.php" method="POST">
<input type="radio" name="tre" value="1">Teknik<br>
<input type="radio" name="tre" value="32">Samhälle<br>
</form>
</div>

<div class="namn">
<form id="name" action="idk.php" method="POST">
Skriv in namn: <input type="text" name="name"><br>
</form>
</div>
&#13;
&#13;
&#13;

有什么问题? php看起来像这样:

    <?php 
    $x = 0;
    if (isset($_POST["fraga1"])){ //if isset is nothing, therefore it doesnt run these statements.
        $fraga1 = $_POST["fraga1"];
        if($fraga1 == 1){
            $x+1;
        }
    }
    if(isset($_POST["fraga2"])){
        $fraga2 = $_POST["fraga2"];
        if($fraga2 == 2){
            $x+1;
        }
    }
    if(isset($_POST["fraga3"])){
        $fraga3 = $_POST["fraga3"];
        if($fraga3 == 3){
            $x+1;
        }
    }
    else{
        echo '<p>Nope</p>';
    }
    echo $x;
?> 

<?php 
echo $_POST["name"]; //Only this one is working.
echo $_POST["fraga1"]; //This one gives the error "undefined index"
?>

2 个答案:

答案 0 :(得分:0)

问题解决了。解决方案就像有人评论一样,只提交一个表单并将所有数据放在那里。要从php访问它,你只需要收音机输入的名称。

答案 1 :(得分:-2)

在输入中使用标签id =“fraga1”/ 2/3/4并将它们放在一个表单中,然后使用以下jquery-post将其发送到提交按钮的onclick-event中的php

$.ajax({
        type: 'POST',
        url: 'idk.php',
        data: {fraga1:$('#fraga1').val(),fraga2:$('#fraga2').val(),fraga3:$('#fraga3').val(),fraga4:$('#fraga4').val()},
        dataType: "json",
        success: function (data) {
            //do something...
        },
        error: function (err) {
            console.log(err)
        }
    });

你可以使用javascript jquery来$('。fraga2')。show()和$('。fraga1')。hide()问题,最后执行以在按钮事件中发布。这是非常基本的编程,如果你不知道如何做到这一点,我建议阅读基本的php和js上的2或3个教程,或者去dummis论坛而不是专业人士。