好的,也许很难解释。我有一个使用PHP Form Builder Class
构建的表单看起来像:
$form = new form("firstForm");
$form->setAttributes(array(
"width" => 600,
"noAutoFocus" => 1,
"jsIncludesPath" => "lib/php-form-builder-class/includes",
"action" => "uploader.php"
));
$form->addTextbox("Enter a Title:", 'title' , $row['title']);
$form->addTextbox("Enter a Promo Code:", "promo" , $row['promo']);
$form->addWebEditor("Description", "description", $row['description'], array("basic" => 1));
$form->addWebEditor("Terms and Conditions", "terms", $row['terms'], array("basic" => 1));
$form->addHidden("img_urls", $row['img_urls']);
$form->addHidden("destination", $row['destination']);
$form->addHidden("header", $row['headerimg']);
$form->addHidden("cmd", "submit_0");
$form->addButton();
$form->render();
我想在其中一个元素中添加一些jQuery以允许拖放,所以我创建了另一个表单元素:
?>
<form id="firstForm" action="uploader.php" method="post" >
<ul class="sortable">
Mags Select:
<?
foreach ($profiles as $mag) {
?>
<div id="sorty"><input type="checkbox" name="units" value="<? echo $mag ?>" /><label><? echo $mag ?></label><br /></div>
<? } ?>
</ul>
</form>
在提交PHP表单生成器类时,如何通过其值'单元'使jQuery部分发布?
我已经看过在课堂上添加一个方法,但是想知道是否有更简单的方法?
编辑:
PHP Form Builder类表单是自包含的,因此无论jQuery表单在页面中的哪个位置,它总是在另一个之外。
答案 0 :(得分:2)
您可以使用javascript并从第一个表单INTO(隐藏字段)中传输值吗?
或者类似地你可以构建表单并复制HTML(查看源代码)并使用它而不是原始的php,然后将你的jQuery拖放到那里。
答案 1 :(得分:2)
只需将您的第二个“firstForm”ID更改为secondForm,然后执行以下操作:
$('#firstForm').submit(function(event) {
event.preventDefault();
var postData = $(this).add('#secondForm').serialize();
$.post($(this).attr('action'), postData, function() {
// Complete....
}
});
由于您的units
输入包含多个元素,您可以将其更改为类似的数组(记下从units
到units[]
的更改):
<div id="sorty"> <!-- I assume this should be ouside the foreach... !-->
<? foreach ($profiles as $mag) { ?>
<input type="checkbox" name="units[]" value="<? echo $mag ?>" />
<label><? echo $mag ?></label><br/>
<? } ?>
</div>
然后你就会像PHP中的数组一样收到它:
foreach ($_POST['units'] as $key => $value)
{
}
答案 2 :(得分:0)
你能不能将jQuery拖放表单字段放在与所有其他字段相同的<form>
标记中?这是自然而然的方式。