'';不是xsd:date(PHP)类型的有效值


'' is not a valid value for the type xsd:date (PHP)

我有一个HTML表单,它发布所有收集到的信息(即,当用户输入详细信息并单击提交时),它将发布到PHP脚本中进行处理。问题是,当我没有为日期字段传递任何值时,我会得到下面的错误。

错误:"不是xsd:date 类型的有效值

如何让我的帖子接受字段的空值并成功提交?

Form.html

<form class="form-horizontal" action="CandidateCreationPage.php" method="post" enctype="multipart/form-data">
<table class="form-table">
 <tbody>
<tr>
 <td class="label-cell"><label>First Name <span class="required-input letters-only">*</span></label></td>
<td>
<input class="required-field letters-only" type="text" name="firstname" id="first-name" maxlength="25" />
 </td>
   </tr>
<tr>
<td class="label-cell"><label>Last Name <span class="required-input">*</span></label></td>
 <td>
 <input class="required-field letters-only" type="text" name="lastname" id="last-name" maxlength="30" />
 </td>
 </tr>
<tr>
<td class="label-cell"><label>How Did You Learn of This Opportunity? <span class="required-input">*</span></label></td>
<td>
 <select class="required-field" id="hear-this-opportunity" name="hearthisopportunity">
  <option value="">--None--</option>
<option value="Kijiji">Kijiji</option>
</select>
 </td>
 </tr>
  <tr>
<td class="label-cell"><label>Please Specify (If Applicable) <span id="please-specify-asterisk" class="required-input hide">*</span></label></td>
 <td>
<input class="letters-only" type="text" name="pleasespecify" id="please-specify" maxlength="50" />
 </td>
</tr>
 <tr>
 <td class="label-cell"><label>Status</label></td>
  <td>
<select id="status" name="status">
  <option value="">--None--</option>
<option value="Full-time">Full-time</option>     
 </select>
     </td>
    </tr>
  <tr>
 <td class="label-cell"><label>Have You Worked With Us Before?</label></td>
  <td>
<select id="worked-previously" name="workedpreviously">
 <option value="">--None--</option>
 <option value="Yes">Yes</option>
 <option value="No">No</option>
 </select>
 </td>
 </tr>
<tr>
<td class="label-cell"><label>When (If Applicable)</label></td>
<td>
<input type="text" name="workedpreviouslywhen" id="worked-previously-when" />
 </td>
</tr>
 <tr>
<td class="label-cell"><label>Available to Start</label></td>
 <td>
 <input type="text" name="availabletostart" id="available-to-start" />
</td>
</tr>
<tr>
 </form>
</body>
</html>

Post.PHP

if(isset($_POST['submit']))
{
try{
$fields = array (
'First_Name__c' => $_POST['firstname'],
'Last_Name__c' => $_POST['lastname'],
'Primary_contact_number__c'=>$_POST['primarycontactnumber'],
'Secondary_contact_number__c'=>$_POST['secondarycontactnumber'],
'Email__c'=> $_POST['email'],
'How_did_you_learn_of_this_Opportunity__c'=>$_POST['hearthisopportunity'],
'Please_Specify__c'=>$_POST['pleasespecify'],
'Status__c'=>$_POST['status'],
'Have_you_worked_with_us_before__c'=>$_POST['workedpreviously'],
'When__c'=>$_POST['workedpreviouslywhen'],
    'Available_to_start__c'=>$_POST['availabletostart'],);

作为一种替代方法,您可以从第一个数组声明中删除与date相关的variables,然后检查date变量是否为空,并将它们附加到fields数组中。

$fields = array ( 'First_Name__c' => $_POST['firstname'], 'Last_Name__c' => $_POST['lastname'], etc }

$fields阵列中移除类似variables的:

 ["When__c"]=> 
 ["Available_to_start__c"]

然后让我们检查,如果变量不为空,则将其附加到数组中:

if(!empty($_POST['When'])){
$fields['When__c'] = $_POST['When'];
}
if(!empty($_POST['AvlToStart'])){
$fields['Available_to_start__c'] = $_POST['AvlToStart'];
}

etc