2014-03-02 41 views
0

我正在靠牆撞我的頭,試圖找出爲什麼我總是得到'TypeError:'msgs'是空錯誤'。我一遍又一遍地檢查了我的jQuery和php代碼,甚至試過了console.log(msgs),但是沒有在控制檯中顯示。有人能幫我看看我滑倒的地方嗎?非常感謝jQuery TypeError:'msgs'爲null需要幫助

// Function to enter intake user area 

$(function() 
    { 

     $.validator.setDefaults(
      { 
       errorClass: 'form_error', 
       errorElement: 'span' 
      }); 

     $("#USRboxint").validate(
      { 
       rules: 
       { 
        requested: 
        { 
         required: true 
        }, 
        service: 
        { 
         required: true 
        }, 
        dept: 
        { 
         required: true 
        }, 
        address1: 
        { 
         required: true 
        }, 
        datepicker: 
        { 
         required: true 
        }, 
        box_add: 
        { 
         required: true 
        } 
       }, 
       messages: 
       { 
        requested: 
        { 
         required: '* required: You must enter your name' 
        }, 
        dept: 
        { 
         required: "* required: You must select a department" 
        }, 
        address1: 
        { 
         required: "* required: You must select a customer address" 
        }, 
        service: 
        { 
         required: "* required: You must select a tier level" 
        }, 
        box_add: 
        { 
         required: "* required: You must enter a number" 
        }, 
        datepicker: 
        { 
         required: "* required: You must enter a date" 
        } 
       }, 

       submitHandler: function() { 
        if ($("#USRboxint").valid() === true) { 
         var data = $("#USRboxint").serialize(); 
         $.post('/domain/users/boxesadd.php', data, function(msgs) { 

          var messageOutputs = ''; 
          for (var i = 0; i<msgs.length; i++){ <--- **ERROR IS HERE** 

                   messageOutputs += msgs[i].box+' '; 
                   console.log(messageOutputs);  
                  } 
          $("#USRaddbox").html("You have entered box: " + "<b>" + messageOutputs + "</b><br /> You may now close this window."); 
          $("#USRboxint").get(0).reset(); 
         }, 'json'); 

        } else 

        { 
         return; 
        } 
       }, 
       success: function(msg) { 
        //$("#BA_addbox").html("You have entered a new entry"); 
        //$("#BA_boxform").get(0).reset(); 
       } 

      }); 
    }); 

PHP後臺

<?php 

$requested = mysql_real_escape_string($_POST['requested']); 
$activity = mysql_real_escape_string($_POST['activity']); 
$address = mysql_real_escape_string($_POST['address1']); 
$service = mysql_real_escape_string($_POST['service']); 
$box = mysql_real_escape_string($_POST['box_add']); 
//$destroydate = mysql_real_escape_string($_POST['BA_destdate']); 
$date = DateTime::createFromFormat('d/m/Y', $_POST['datepicker']); 
$destdate = $date->format('Y-m-d'); 
$authorised = mysql_real_escape_string($_SESSION['kt_name_usr']); 
$submit = mysql_real_escape_string($_POST['submit']); 
$dept = mysql_real_escape_string($_POST['dept']); 
$array = split('[,]', $_POST['box_add']); 

if (isset($_POST['submit'])) { 
    $form = array(); 
    foreach ($array as $box) { 
     $form[] = array('dept'=>$dept, 
         'company'=>$company, 
         'address'=>$address, 
         'service'=>$service, 
         'box'=>$box, 
         'destroydate'=>$destroydate, 
         'authorised'=>$authorised, 
         'submit'=>$submit); 
    } 
} 
$result=json_encode($form); 

echo $result; 

?> 
+0

什麼是服務器 –

回答

2

.serialize()將不包括在在發送到服務器上的數據submit按鈕。它只在表單正常提交時自動發送。

嘗試:

var data = $("#USRboxint").serialize() + '&submit=true'; 
+0

優秀的返回值。非常感謝。沒有意識到無法包含.serialize()幷包含提交。我應該使用點擊功能嗎? – user1532468

+0

使用什麼事件處理程序並不重要。 – Barmar