Mootools在同一页面上捕获关于提交的表单数据

时间:2012-03-09 10:58:09

标签: javascript forms try-catch submit mootools

这个人一直在打破我的大脑。

我正在尝试从表单中获取$ _POST数据,并将其放在与mootools框架中使用Ajax的表单相同的页面上的div中。而且我无法让它工作,成功的消息显示,div只会被填充:Array()。

php文件很简单:

<?php
 print "<pre>".print_r($_POST, true)."</pre>";
 ?>

这是我的javascript:

window.addEvent('domready', function() {
    $('form-booking').addEvent('submit', function(event) {
    event.stop();

    var log = $('log_res').empty().addClass('ajax-loading');


    this.set('send',{
      url: this.get("action"),
      data: this,
      update: log,    
      onComplete: function(response) { log.removeClass('ajax-loading');   
      alert('Succesvol aangevraagd.'); $('log').setStyle('background','#ffffff');

      }
    }).send();
  });
});

更新

Header:
Connection  Keep-Alive
Content-Length  0
Content-Type    text/html
Date    Fri, 09 Mar 2012 12:06:17 GMT
Keep-Alive  timeout=5, max=100
Location    http://192.168.52.64/xampp/
Server  Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l   mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1
X-Powered-By    PHP/5.3.1

POST:

<pre>Array
(
    [date_from] => 1331300252
    [service_check_8] => 1
    [service_check_34] => 1
    [booking_form] => 1
    [cnt_nights] => 7
    [cnt_person] => 2
    [cnt_children] => 0
    [cnt_baby] => 0
    [child_ages] => Array
        (
            [0] => 2
            [1] => 2
            [2] => 2
            [3] => 2
            [4] => 2
            [5] => 2
            [6] => 2
            [7] => 2
            [8] => 2
            [9] => 2
            [10] => 2
            [11] => 2
            [12] => 2
            [13] => 2
            [14] => 2
            [15] => 2
            [16] => 2
            [17] => 2
            [18] => 2
            [19] => 2
        )

    [service_cnt_8] => 2
    [subservice_16] => 614
    [service_cnt_34] => 1
    [subservice_40] => 301
    [subservice_88] => 688
    [service_cnt_67] => 1
    [subservice_122] => 762
    [service_cnt_68] => 1
    [subservice_123] => 765
)
</pre> 

2 个答案:

答案 0 :(得分:0)

请下次,在格式化代码方面做得更好 - 这很难读懂...你能试试吗(完全和发布一样)

$('form-booking').addEvent('submit', function(e) {

    new Event(e).stop();

    var log = $('log_res').empty().addClass('ajax-loading');

    this.send({
        update: log,
        onComplete: function() {
            log.removeClass('ajax-loading');
        }
    });
});

答案 1 :(得分:0)

'Array()'来自php - 您需要更改代码中的一些内容:

首先,将method: post添加到您设置发送的位置。 PHP正在打印您的$ _POST数组,该数组为空,因此您可以获得您所看到的响应。这不是一个mootools问题。

此外,您的$('log')。setStyle ...将无效,因为您的日志div似乎具有id'log_res'(除非您有2个不同的日志元素继续)。