@ledokol88

Как передать состояние переключателей на сервер, для передачи результата по почте.?

Передача значения на сервер. Не удается получить и выслать по почте значений от состояния переключателя
<form id="zakaz" role="form" method="post" action="./php/zakaz.php">
         <input type="checkbox" name="nomer1" class="vbr"><br>
         <input type="checkbox"  name="nomer2" class="vbr">
         <input type="checkbox"  name="nomer3" class="vbr">
         <input type="checkbox" name="nomer4" class="vbr">
      <h3>Способ получения</h3>
      <input name="radiobutton" type="radio" value="Доставка" class="vbr">
      <input name="radiobutton" type="radio" value="Самовывоз" class="vbr">


		zakaz.js
		
<code lang="javascript">
	
	
	
	$.post(order_url, {
		
	            nomer3: $('#zakaz input[name=nomer3]').val(),
				nomer1: $('#zakaz input[name=nomer1]').val(),
				nomer2: $('#zakaz input[name=nomer2]').val(),
				nomer4: $('#zakaz input[name=nomer4]').val(),
				radio: $('#zakaz input[name=radiobutton]').val(),
				send: "1"
			}, function (data) {
					$('#zakaz').html(data);
				$('#zakaz').show();
				$('#zakaz_info').remove();
			}, "html");
</code>
		
		zakaz.php
		
	<code lang="php">
	
		// Выбор типа доставки

	$radio = $_POST[ 'radiobutton' ];
	if ( $radio === "Доставка" );
	if ( $radio === "Самовывоз" );
	
    if ( $_POST[ 'nomer1' ] == '' ) {$name1 = "нет";} 
	else {$nomer1ka = "<strong style='font-weight:bold;border-bottom:1px solid #DF1518;'>nomer1</strong>";}
	if ( $_POST[ 'nomer2' ] == '' ) {$name2 = "нет";} 
	else {$glagka = "<strong style='font-weight:bold;border-bottom:1px solid #DF1518;'>nomer2</strong>";}
	if ( $_POST[ 'nomer3' ] == '' ) {$name3 = "нет";} 
	else {$nomer3 = "<strong style='font-weight:bold;border-bottom:1px solid #DF1518;'>nomer3</strong>";}
	if ( $_POST[ 'nomer4' ] == '' ) {$name4 = "нет";} 
	else {$nomer4 = "<strong style='font-weight:bold;border-bottom:1px solid #DF1518;'>nomer4</strong>";}
	
	$msg = "<html><body style='font-family:Arial,sans-serif;'>";
	$msg .= .$name1; "\r\n";
	$msg .= .$name2; "\r\n";
	$msg .= .$name3; "\r\n";

</code>

Я не специалист по jQuery, Но данные input text, textarea, data прекрасно передаются! Я не могу отследить какой параметр нужно применить для radio и checkbox, Чтобы Отладить надо быть специалистом, но я увы таковым не являюсь. Но при использовании $.ajax все работает.

$.ajax({
          type: 'POST',
             url: 'zakaz.php,
          data: $("#zakaz").serialize(),
          success: function(data) {
$('#zakaz').find('input[type=text],input[type=tel],input[type=email], textarea').val('');
$('#zakaz').find("input[type=checkbox], input[type=radio]").prop("checked", "");
                    }
        });
  • Вопрос задан
  • 1097 просмотров
Решения вопроса 1
1. Если атрубут value для checkbox-а не задан, то метод jQuery val() всегда возвращает "on". Для выяснения состояния лучше использовать проверку наличия псевдокласса checked:
$('#zakaz input[name=nomer1]').is(':checked')
2. В PHP значение checkbox передаётся только если он был включён, в противном случае оно вообще не передаётся. Т.е. вместо проверки на пустую строку if ($_POST[ 'nomer3' ] == '') ..., надо проверку на существование if (isset($_POST[ 'nomer3' ])) ...
(Ну или для PHP7 просто if ($_POST[ 'nomer3' ]) )
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@ledokol88 Автор вопроса
Я не специалист по jQuery, Но данные input text, textarea, data прекрасно передаются! Я не могу отследить какой параметр нужно применить для radio и checkbox, Чтобы Отладить надо быть специалистом, но я увы таковым не являюсь. Но при использовании $.ajax все работает.
$.ajax({
					type: 'POST',
				     url: 'zakaz.php,
					data: $("#zakaz").serialize(),
					success: function(data) {
$('#zakaz').find('input[type=text],input[type=tel],input[type=email], textarea').val('');
$('#zakaz').find("input[type=checkbox], input[type=radio]").prop("checked", "");
										}
				});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы