我有以下代码:
<form id="sendObj">
<table class="no-border hover list">
<tbody class="no-border-y">';
while($pendingTransfers = mysql_fetch_assoc($getPending)){
$id = $pendingTransfers['id'];
echo '
<tr class="items">
<td style="width: 10%;"><span class="label label-primary">'.$counter++.'</span></td>
<td class="text-left"><p>'.$pendingTransfers['NumarInventar'].'</p></td>
<td class="text-left"><p><strong>'.$pendingTransfers['DenumireArticol'].'</strong></p></td>
<input type="hidden" name="id" value="'.$pendingTransfers['id'].'" />
<td class="text-center"><input type="hidden" name="depID" class="getDep" data-placeholder="Selecteaza destinatie" /> <i style="color:red" title="Sterge din lista" onclick="deleteLista('.$pendingTransfers['id'].');" class="text-right fa fa-times-circle fa-lg"></i></td>
</tr>';}
echo '
</tbody>
</table>
</form>
<div class="text-center"><button id="BtnSendObj" type="submit" class="btn btn-primary btn-success"><i class="fa fa-check color-inverse fa-lg"></i> Finish transfers</button></div>
上面的代码为每条记录和上表中的每一行带来了插入的数据库 ID,用户可以从中选择一些值。用户完成后,他将按下“完成传输”按钮,所有输入都必须序列化。问题是我有多个具有相同名称的输入,我无法将它们全部分组,因为我稍后可以在 PHP 中使用它们。例如,我可以在每个输入的每行 1 上有 5 行。所以结果将是 id=1 DepId=3456 , id =2 DepId = 5432 等等。
$('#BtnSendObj').on('click', function(event) {
event.preventDefault();
var data;
var a = $('#sendObj').serializeArray();
$.each(a, function () {
var depID = $('input[name=depDestinatie]').serializeArray();
var id = $('input[name=id]').serializeArray();
data =[{"id":id, "depID":depID}];
});
//The above will output something like :
// [Object]0: Object
//depId: Array[4]0: Object1: Object2: Object3: Object...
// id: Array[4]0: Object1: Object2: Object3: Object
// Like this i cannot handle them togerther in PHP.
// I think it should look like an array of objects so like this i would //be able to acces them easly , i think that both id's should be in same object //, but this is were i dont know how to proceed.
$.ajax({
url: 'subpages/data/transferObjects.php',
data: {data: data},
type: 'POST',
success:function(data, textStatus, jqXHR){
console.log('AJAX SUCCESS');
console.log(data);
},
complete : function(data, textStatus, jqXHR){
}
});
});
我在这里处理 ajax 帖子。
我想要实现的是将数据发送到一个 php 文件,我将在其中使用表单中的值更新数据库。
php 文件看起来像这样:
//some connection
if(isset($_POST['data']))
{
$updateObjects = mysql_query("UPDATE transactions SET IDDepartamentDestinatie = '$_POST['depID'] WHERE id = '{$_POST['id']}'");
}
但像这样它只会更新表单中的最后一条记录,因为我不会遍历所有输入。
如果有人知道我该怎么做,我已经尝试了所有关于 serializeArray 或 serialize 的示例,但对我没有用。
最佳答案
对于这种情况,还有另一种可能性 - 在名称后附加 [] 来命名这些输入:
<input type="hidden" name="id[]" value="'.$pendingTransfers['id'].'" />
<input type="hidden" name="depID[]" class="getDep" data-placeholder="Selecteaza destinatie" />
然后在您的 $_POST['id'] 和 $_POST['depId'] 中,您将自动拥有数组。因此,无需额外的操作,您只需将其作为数据放入您的 ajax 函数中,如下所示:
data: $.param($('#sendObj').serializeArray())
在 PHP 中,您可以利用两个数组中的键对于对应的值对相同这一事实:
if(isset($_POST['depID'])){
foreach($_POST['depID']) as $k => $v){
mysql_query("UPDATE transactions SET IDDepartamentDestinatie = '$v' WHERE id = '{$_POST['id'][$k]}'");
}
}
另外请记住,$_POST 值应该使用 mysql_real_escape_string 进行清理,更好的是,使用 PDO 进行 mysql 处理。
关于javascript - 序列化表单 - 输入具有相同的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28944973/
我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..
我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib
我有一个这样的哈希数组:[{:foo=>2,:date=>Sat,01Sep2014},{:foo2=>2,:date=>Sat,02Sep2014},{:foo3=>3,:date=>Sat,01Sep2014},{:foo4=>4,:date=>Sat,03Sep2014},{:foo5=>5,:date=>Sat,02Sep2014}]如果:date相同,我想合并哈希值。我对上面数组的期望是:[{:foo=>2,:foo3=>3,:date=>Sat,01Sep2014},{:foo2=>2,:foo5=>5:date=>Sat,02Sep2014},{:foo4=>4,:dat
我有一个服务模型/表及其注册表。在表单中,我几乎拥有服务的所有字段,但我想在验证服务对象之前自动设置其中一些值。示例:--服务Controller#创建Action:defcreate@service=Service.new@service_form=ServiceFormObject.new(@service)@service_form.validate(params[:service_form_object])and@service_form.saverespond_with(@service_form,location:admin_services_path)end在验证@ser
给定一个复杂的对象层次结构,幸运的是它不包含循环引用,我如何实现支持各种格式的序列化?我不是来讨论实际实现的。相反,我正在寻找可能会派上用场的设计模式提示。更准确地说:我正在使用Ruby,我想解析XML和JSON数据以构建复杂的对象层次结构。此外,应该可以将该层次结构序列化为JSON、XML和可能的HTML。我可以为此使用Builder模式吗?在任何提到的情况下,我都有某种结构化数据-无论是在内存中还是文本中-我想用它来构建其他东西。我认为将序列化逻辑与实际业务逻辑分开会很好,这样我以后就可以轻松支持多种XML格式。 最佳答案 我最
我正在使用Rails3.1并在一个论坛上工作。我有一个名为Topic的模型,每个模型都有许多Post。当用户创建新主题时,他们也应该创建第一个Post。但是,我不确定如何以相同的形式执行此操作。这是我的代码:classTopic:destroyaccepts_nested_attributes_for:postsvalidates_presence_of:titleendclassPost...但这似乎不起作用。有什么想法吗?谢谢! 最佳答案 @Pablo的回答似乎有你需要的一切。但更具体地说...首先改变你View中的这一行对此#
如何在Ruby中按名称传递函数?(我使用Ruby才几个小时,所以我还在想办法。)nums=[1,2,3,4]#Thisworks,butismoreverbosethanI'dlikenums.eachdo|i|putsiend#InJS,Icouldjustdosomethinglike:#nums.forEach(console.log)#InF#,itwouldbesomethinglike:#List.iternums(printf"%A")#InRuby,IwishIcoulddosomethinglike:nums.eachputs在Ruby中能不能做到类似的简洁?我可以只
当我创建一个Rails应用程序时,控制台:railsnewfoo我的代码可以使用字符串“foo”吗?puts"Yourapp'snameis"+app_name_bar 最佳答案 Rails.application.class将为您提供应用程序的全名(例如YourAppName::Application)。从那里您可以使用Rails.application.class.parent获取模块名称。 关于ruby-on-rails-应用程序的名称是否可以作为变量使用?,我们在StackOve
已经有一个问题回答了如何将“America/Los_Angeles”转换为“PacificTime(US&Canada)”。但是我想将“美国/太平洋”和其他过时的时区转换为RailsTimeZone。我无法在图书馆中找到任何可以帮助我完成此任务的东西。 最佳答案 来自RailsActiveSupport::TimeZonedocs:TheversionofTZInfobundledwithActiveSupportonlyincludesthedefinitionsnecessarytosupportthezonesdefinedb
让多条路线去同一条路的最优雅的方式是什么ControllerAction?我有:get'dashboard',to:'dashboard#index'get'dashboard/pending',to:'dashboard#index'get'dashboard/live',to:'dashboard#index'get'dashboard/sold',to:'dashboard#index'这很丑陋。有什么“更优雅”的建议吗?一个类轮的奖励积分。 最佳答案 为什么不只有一个路由和一个Controller操作,并根据传递给它的参数来