2016-01-04 4 views
0

У меня есть HTML-форма, которая публикует всю собранную информацию (то есть, когда пользователь вводит данные и нажимает на submit), она будет отправлять сообщения PHP-скрипт для обработки. Проблема в том, что когда я не передаю значение для полей даты, я получаю ошибку ниже.'' недопустимое значение для типа xsd: date (PHP)

Error: '' is not a valid value for the type 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'],); 
+0

На дату, я думаю, вы могли бы сделать isset ($ _POST [ 'date_name']); Я не уверен, но если вы не получите ответ к моменту моего возвращения домой, я попытаюсь запустить его в своем xampp. – RepeaterCreeper

+0

@RepeaterCreeper: ** Ошибка: «1» не является допустимым значением для типа xsd: date **. если мы используем Isset перед отправкой переменной. – Donald

+0

Ой, ох, забыл, что это вернет истину. Игнорируйте мой комментарий. Я просто попытаюсь отладить его дома. – RepeaterCreeper

ответ

0

в качестве альтернативного способа можно удалить 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']; 
} 

и т.д.

+0

У меня есть еще одна проблема .... с датами. Если я поместил значение, это не сообщение. Вместо этого он берет пробел на дату – Donald

+0

Я проверю его через 30 мин. – ZeJur

Смежные вопросы