CSS或JS可以影响表单的提交吗?

时间:2014-03-12 21:27:09

标签: javascript php html forms

我有一个大表格分布在3个标签上。选项卡由JS控制,只需更改css属性display:block to display:none,具体取决于您单击的选项卡。

此表单还通过php将数据提交到3个不同的表。当我在第3个选项卡的末尾提交我的表单时,我的一些数据在一个接受多行的表中丢失(另外两个表只接受一行)在表单的这一部分我让用户添加尽可能多的“房间”,因为他们需要。房间只有几个选择框,额外的选择框也添加了JS。当我提交表格时,只有第一个“房间”被添加到表格中。

我很肯定每件事情都在工作,好像我删除了它完美运行的标签,或者即使我将表单的所有三个部分添加到一个标签就可以了。下面是PHP输入房间和循环取决于有多少。对不起,这是一个非常大的形式,所以我不想只是坚持下去,但它都非常简单,一切正常。如果有帮助,请告诉我是否应该添加我的代码的任何其他部分。

$level = $_POST['level'];
$room_type = $_POST['room_type'];
$width = $_POST['width'];
$length = $_POST['length'];

$num_rooms = count($level);             

for($x=0;$x<$num_rooms;$x++)   
{

    $room_insert = mysqli_query($dbcon, "INSERT INTO listing_rooms (Listing_ID, Level, Type, Length, Width) VALUES ('$listing_id', '$level[$x]', '$room_type[$x]', '$length[$x]', '$width[$x]')") or die(mysql_error());

 }

为了触发这个,我在上面有一个if(isset())。谢谢你的帮助。

这是显示和隐藏标签的JS ......

function showHideTab(tab_id) {

    if (tab_id == 'details_tab'){

        document.getElementById('listing_details').style.display='block';
        document.getElementById('listing_info').style.display='none';
        document.getElementById('photo_upload').style.display='none';

    }else if (tab_id == 'info_tab') {

        document.getElementById('listing_info').style.display='block'; 
        document.getElementById('listing_details').style.display='none';
        document.getElementById('photo_upload').style.display='none'; 

    }
    else if (tab_id == 'upload_tab') {
        document.getElementById('photo_upload').style.display='block';
        document.getElementById('listing_info').style.display='none'; 
        document.getElementById('listing_details').style.display='none';
    }
}

1 个答案:

答案 0 :(得分:0)

我认为这是一个非常简单的错误。正如我所说,我有三个div被JS显示或隐藏。我的问题是我在第一个div中打开了FORM标签!

我仍然不知道为什么除了开场表格标签之外,其他所有“房间”数组都工作得很好,甚至数组都保持第一个价值?