将选定的复选框存储在数组中并将其与facebox一起使用
我在使用 jQuery 的插件 Facebox 处理表单中的一些数据时遇到一些问题。 我想要完成的基本上是将所选复选框数量的值放入一个数组中,并在我的弹出窗口中使用它来使用 PHP 处理它。 我在表单页面上有类似这样的内容:
form.html
<input type="checkbox" name="equip" value="<?php echo $equip_id; ?>" />
<input type="checkbox" name="equip" value="<?php echo $equip_id; ?>" />
<input type="checkbox" name="equip" value="<?php echo $equip_id; ?>" />
<input type="button" name="replace" onClick="replace_equip()" />
还有更多复选框,但我认为这些足以开始使用。
这里是 replace_equip()
function replace_equip() {
var nArr = new Array();
$("input:checkbox[name=equip]:checked").each(function() {
nArr.push($(this).val());
$.facebox(function() {
$.ajax({
data: { name : nArr },
error: function() {
$.facebox("err");
},
success: function(data) {
$.facebox(data);
},
type: "post",
url: "test.php"
});
});
});
}
我试图将选定的复选框保存到一个数组中,以便我可以在 test.php 中使用它进行 PHP 处理。
我刚刚开始使用 jquery 和 javascript,所以请原谅您可能发现的任何巨大错误!
I'm having some trouble using jQuery's plugin Facebox to process some data from a form.
What I'm trying to accomplish is basically get the values of the number of selected checkboxes into an array and have it available in my popup to process it with PHP.
I have something like this on a form page:
form.html
<input type="checkbox" name="equip" value="<?php echo $equip_id; ?>" />
<input type="checkbox" name="equip" value="<?php echo $equip_id; ?>" />
<input type="checkbox" name="equip" value="<?php echo $equip_id; ?>" />
<input type="button" name="replace" onClick="replace_equip()" />
There are more checkboxes, but I think these are enough to get started.
Here is replace_equip()
function replace_equip() {
var nArr = new Array();
$("input:checkbox[name=equip]:checked").each(function() {
nArr.push($(this).val());
$.facebox(function() {
$.ajax({
data: { name : nArr },
error: function() {
$.facebox("err");
},
success: function(data) {
$.facebox(data);
},
type: "post",
url: "test.php"
});
});
});
}
I'm trying to save the selected checkboxes into an array, in a way that I can use it for PHP processing in test.php.
I'm just getting started with jquery and javascript in general, so forgive any monster mistakes you may find!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,您的代码存在一些风格问题。首先,您应该选择不对数组、对象等使用
new
语法。而是使用var array = [];
之类的内容声明您的Array
代码>.其次,您使用的是内联onClick
,如果您已经在使用 jQuery,则应避免使用它。相反,请使用类似$('input[name="replace"]').on('click', function() {...});
的内容。您还应该考虑在函数中使用camelCase
,如果您喜欢下划线,请将它们与vars
一起使用。现在谈谈你问题的实质。我像这样重构了你的代码:
在你的 PHP 代码中,你可以
json_decode()
这个数组并按照你想要的方式使用它。我还将type
和url
参数移至顶部,因为您的error
和success
函数可能会变得相当冗长。我会考虑阅读 JavaScript 模式(至少是要点章节)。
To get started, there are a few stylistic issues with your code. First, you should opt not to use
new
syntax with Arrays, Objects, etc. Instead, declare yourArray
with something likevar array = [];
. Second, you're using an inlineonClick
, which should be avoided if you're using jQuery already. Instead, use something like$('input[name="replace"]').on('click', function() {...});
. You should also consider usingcamelCase
with your functions, and if you like underscores, use them withvars
.Now onto the meat of your question. I refactored your code like so:
In your PHP code, you would
json_decode()
this array and work with it how you want. I also moved thetype
andurl
params to the top, as yourerror
andsuccess
functions may get quite lengthy.I would consider reading JavaScript Patterns (at least the Essentials chapter).