• Необходимо добавить в форму обратной связи пункт с выбором из раскрывающегося списка. Одна проблема в том, что удаляется атрибут id у тега select, вторая проблема, что обработчик не видит данные получаемые из select’а. Собственно html часть:

    <div class="home-section-content">
    <div class="onetone-animated animated fadeIn">
    <div class="contact-area section_btn_text_8">
    <form class="contact-form" action="" method="post">
    <input id="name" tabindex="1" name="name" size="22" type="text" value="" placeholder="Имя" />
    <input id="email" tabindex="2" name="email" size="22" type="text" value="" placeholder="Эл. адрес" />
    <select name="metro" >
    <option value="ds,jh">Выберите станцию</option>
    <option selected="selected" value="ВДНХ">ВДНХ</option>
    <option value="Алексеевская">Алексеевская</option>
    </select>
    <textarea id="message" name="x-message" placeholder="Сообщение"></textarea>
    <input id="sendto" name="sendto" type="hidden" value="****@***" />
    <input id="submit" name="submit" type="button" value="Отправить" />
    </form>
    </div>
    </div>
    </div>

    php:

    function onetone_contact(){
    	if(trim($_POST['Name']) === '') {
    		$Error = __('Please enter your name.','onetone');
    		$hasError = true;
    	} else {
    		$name = trim($_POST['Name']);
    	}
    
    	if(trim($_POST['Email']) === '')  {
    		$Error = __('Please enter your email address.','onetone');
    		$hasError = true;
    	} else if (!preg_match("/^:alnum:[a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$/i", trim($_POST['Email']))) {
    		$Error = __('You entered an invalid email address.','onetone');
    		$hasError = true;
    	} else {
    		$email = trim($_POST['Email']);
    	}
    	
    	if(trim($_POST['metro']) === '') {
    		$Error = __('Please enter your station.','onetone');
    		$hasError = true;
    	} else {
    		$name = trim($_POST['metro']);
    	}
    
    	
    		if(trim($_POST['Message']) === '') {
    		$Error =  __('Please enter a message.','onetone');
    		$hasError = true;
    	} else {
    		if(function_exists('stripslashes')) {
    			$message = stripslashes(trim($_POST['Message']));
    		} else {
    			$message = trim($_POST['Message']);
    		}
    	}
    	
    	if(!isset($hasError)) {
    	   if (isset($_POST['sendto']) && preg_match("/^:alnum:[a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$/i", trim($_POST['sendto']))) {
    	     $emailTo = $_POST['sendto'];
    	   }
    	   else{
    	 	 $emailTo = get_option('admin_email');
    		}
    		
    	   if($emailTo !=""){
    			$subject = 'From '.$name;
    			$body = "Name: $name \n\nEmail: $email metro: $metro \n\nMessage: $message";
    			$headers = 'From: '.$name.' <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;
    
    			wp_mail($emailTo, $subject, $body, $headers);
    			$emailSent = true;
    		}
    		echo json_encode(array("msg"=>__("Your message has been successfully sent!","onetone"),"error"=>0));
    		
    	}
    	else
    	{
    		echo json_encode(array("msg"=>$Error,"error"=>1));
    	}
    	die() ;
    }

    после заполнения формы и попытки отправить приходит ответ с ошибкой по metro. Думал может какие траблы с обработкой select прописывал отдельный input c атрибутами id=»metro» и name=»metro» результат не изменился. Где я что не так делаю?

Просмотр 1 ответа (всего 1)
Просмотр 1 ответа (всего 1)

Тема «доработка обработчика обратной связи» закрыта для новых ответов.