那麼,我已經看到很多關於「用一個按鈕提交兩個表單」等類似問題的答案,但從未涉及到我的具體疑問。兩個HTML表單和一個提交(帶有動態字段的一個表單)
我花了圍繞這兩天,測試不同的解決方案,這是我所:
第一種形式是一個動態的形式,通過信息只能從我的MySQL數據庫自動生成一個欄裏面,所以後來我在PHP中爆炸並分隔字段來構建表單。
到目前爲止好!
然後在JavaScript中,我有這個腳本,將獲得所有選項和/或用戶寫入(取決於輸入類型),並將POST一個變種。
再一次,到目前爲止這麼好!
但是,我有第二種形式(假設它有「靜態字段」),我希望那些在POST上。
我對着這裏有兩個難題: - (?會話VAR也許)
1如果我真的這樣分成兩種形式,並嘗試提交他們一次一個以存儲在VAR的第一個
2 - 我是否應該將所有內容都放在一個表單中,並嘗試一次全部提交? (我已經試過這個,並且用我的實際的JavaScript它不會工作,我將不得不修改它,但是問題是...我不知道如何,但我想這是最好的解決方案。)
現在已經夠「說」了,讓我們看看一些代碼。
這些都是動態的字段(代碼是不完整的在這裏,它只是讓你有一個想法,因爲獨此代碼工作):
$types = explode(",",$row["field_type"]);
$values = explode("|",$row["field_values"]);
$count =1;
$c = 1;
if($types[0]!=""){
foreach($types as $type){
$value = explode("^",$values[$c-1]); ?> <div class="fields" data-count="<?=$count?>" data-type="<?=$type?>"> <span id="label<?=$count?>" class="labels"><?=$value[0]?></span>
<span <?php if($type=="select") { ?> class="styled quotoesDiv" <?php } ?>>
<?php if($type=="text"){ ?>
<input name="input<?=$count?>" type="text" id="input<?=$count?>" required value="" class="details">
<?php }else if($type=="textbox"){ ?>
<textarea style=" width: 450px;height: 150px;" name="input<?=$count?>" id="input<?=$count?>"></textarea>
<?php }else if($type=="select"){ $options = explode(",",$value[1]); ?>
<select name="input<?=$count?>" id="input<?=$count?>" class="qt-li">
<?php foreach($options as $option){ ?>
<option value="<?=$option?>"><?=$option?></option>
<?php } ?>
</select>
<?php }else if($type=="combo"){ $options = explode(",",$value[1]); ?>
<select multiple name="input<?=$count?>" id="input<?=$count?>" class="qt-li combo">
<?php foreach($options as $option){ ?>
<option value="<?=$option?>"><?=$option?></option>
<?php } ?>
</select>
<?php }else if($type=="checkbox"){ $options = explode(",",$value[1]); ?>
<?php foreach($options as $option){ ?>
<input type="checkbox" name="input<?=$count?>" id="input<?=$count?>" value="<?=$option?>"> <?=$option?>
<?php $count++; } ?>
<?php $count--; }else if($type=="radio"){ $options = explode(",",$value[1]); ?>
<?php foreach($options as $option){ ?>
<input type="radio" name="input<?=$count?>" id="input<?=$count?>" value="<?=$option?>"> <?=$option?>
<?php } ?>
<?php } ?>
</span>
然後我們在這裏提交後會調用JavaScript:
$(document).ready(function(e) {
$("#request_form").on("submit",function(e){
//e.preventDefault();
var count = $(".fields:last").data("count");
var values = "";
for(i=1;i<=count;i++){
var type = $("#label"+i).closest(".fields").data("type");
if(type=="checkbox"){
values += $("#label"+i).html()+"__";
var number_of_checkboxes = ($("#input"+i).closest("span").find("input").length)-1;
$("#input"+i).closest("span").find("input").each(function(index, element) {
if($(this).is(":checked")){
values += $(this).val()+",";
}
});
values = values.substr(0,values.length-1);
values += "^^";
i = i-(-number_of_checkboxes);
}else if(type=="radio"){
values += $("#label"+i).html()+"__"+$('input[name="input'+i+'"]:checked').val()+"^^";
}else{
values += $("#label"+i).html()+"__"+$("#input"+i).val()+"^^";
}
}
values = values.substr(0,values.length-2);
$("#need_request").val(values);
console.log(values);
}); });
任何幫助將非常感激,這就是我所能說的! :)
PS:重要的是要提到,我有很多PHP條件必須在子命令之後完成(獨立於一個或兩個表單)。這些條件在同一個文件中,根據選擇的選項將做不同的事情,所以如果沒有檢查這些條件,我真的不想離開這個文件。
我感謝您的評論和你的幫助,但不幸的是你的代碼不適合我的情況。 :( – Pedro 2015-04-05 02:50:03