我正在使用jQuery post将复选框值发布到另一个文件,我知道页面可以正常工作,并且逻辑是正确的,因为当我不使用jQuery post时页面可以正常工作,问题是它似乎弄乱了数组,因此导致它无法正常工作
我的radio
字段使用以下表单字段:
<input type="checkbox" name="radio[]" value="<? print $id; ?>">
发布到下一页时由哪个处理
if ($_POST['radio']){
foreach($_POST['radio'] as $val) {
这是我使用print_r($_POST);
以常规形式提交时发布的内容
Array (
[radio] => Array (
[0] => 13
[1] => 12
)
[ros] => sell
[submit] => submit
)
效果很好,问题是它在jQuery AJAX中不起作用,因此我无需刷新即可处理数据,当我使用jQuery AJAX发布表单时,数据如下所示:
Array (
[ros] => sell
[submit] => submit
[radio] => radio %5B %5D=15&radio%5B%5D=14&ros=sell
)
这是我的jQuery AJAX发布脚本:
function submitgarage() {
var submit = $("input[name=submit]").val();
var ros = $("#ros option:selected").val();
var radio = $("#garageform").serialize();
$.post("ajax/vehicles/garage.php", { ros: ros, submit: submit, radio: radio },
function(data) {
$('#results').html(data);
});
}
如您所见,它正在添加%5B
%5D
等,我尝试使用utf8_decode
,导致服务器500错误,尝试使用urldecode
,我怀疑无论如何都无法正常工作,我是对的,我似乎无法像以前一样发布它。
我已经检查了关于Stack Overflow的其他主题,是否有同样的事情,但似乎找不到解决方案。
参考方案
jQuery的AJAX序列化了给定的数据对象,但是您已经序列化了无线电字段,因此您将其序列化了两次。
您的radio
变量必须是数组,而不是已序列化的数据。
var radio = $("#garageform [name='radio[]']:checked").get().map(function(e) {
return e.value;
});
jQuery Ajax加载仅适用于单个单词变量 - php在我的PHP文件中,我将一些变量从输入框传递到链接中,该链接通过jQuery的ajax load函数在其URL中使用该变量加载页面。整个系统运行良好,但仅适用于单字变量。每当涉及到空格时,我的Ajax通话都会中断。我假设这是一个编码问题,但是我也有一些疑问。基本上,它归结为我的PHP文件中的这一行代码,这导致了混乱。是否有可能找出格式是否正确,或者为什么在多…
jQuery-找不到Ajax网址 - php好的,我敢肯定这确实很容易,而且我很愚蠢,但是似乎并不能深入了解它。我试图从我的js文件“ custom.js”中对“ helpers.php”中的某些代码进行简单的AJAX调用。但是,我仍然收到404错误,因为我似乎并没有正确遍历文件夹,尽管我确信我正在...我的文件夹结构如下:html index.php js/ custom.js includes h…
PHP-服务器端验证-这是一个好方法吗? - php我已经通过jQuery的帮助进行了广泛的客户端验证。现在进入服务器端验证,如果我发现某些字段无效,是否可以简单地将错误返回给客户端并且没有任何有用的消息?我的假设是用户必须启用JavaScript才能访问我的网页。如果Web浏览器禁用了JavaScript,则用户将看不到该表单。我可以简单地使用noscript来做到这一点。如果他们通过我设计的表单提交信息,…
AJAX实时电子邮件验证(PHP) - php当用户在我的网站上创建帐户时,我希望对照我的数据库(MySQL)中的所有当前用户名检查输入的用户名,并确认是否可用。有谁知道我可以使用的任何好的库,或者是jQuery的插件? 参考方案 所需的确切信息以示例形式here给出。它使用jQuery作为JavaScript库
验证php中的javascript对象 - php在我的用户界面中,用户可以构建一些javascript对象,例如:var box = { "width": "100px", "height": "200px", "click": function () { alert("You clicked t…