Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сформировать массив данных и отправить его в PHP средствами JS (https://javascript.ru/forum/misc/39868-sformirovat-massiv-dannykh-i-otpravit-ego-v-php-sredstvami-js.html)

skrudjmakdak 15.07.2013 15:22

может return false;
<form action="send.php" method="post">
...
<input type="submit" onsubmit="return function(){return false;}">
</form>

ОлегА 15.07.2013 15:32

westnord, а зачем вам $('#formElem').submit(function(e)?

просто return false не помогает что ли?

$(document).ready(function(){
        $('#registerButton').bind('click',function(){
            if( $('#formElem').data('errors') ){
              alert('Пожалуйста, исправьте ошибки в форме!');
            } else {
              $.post("zakaz.php", { formString: objFields } );
                 alert('Спасибо, ваш заказ принят!');                 
            }
            return false;
        });
});

westnord 15.07.2013 16:00

Цитата:

Сообщение от ОлегА (Сообщение 262414)
westnord, а зачем вам $('#formElem').submit(function(e)?

просто return false не помогает что ли?

$(document).ready(function(){
        $('#registerButton').bind('click',function(){
            if( $('#formElem').data('errors') ){
              alert('Пожалуйста, исправьте ошибки в форме!');
            } else {
              $.post("zakaz.php", { formString: objFields } );
                 alert('Спасибо, ваш заказ принят!');                 
            }
            return false;
        });
});

Кнопка "отправить" вообще не работает.

westnord 15.07.2013 16:04

function showValues() {
	 var fields = $(":input").serializeArray();
  var objFields = {};
  jQuery.each(fields, function(i, field){
    labelType = document.getElementById(field.name).innerHTML;
   objFields[labelType] = field.value;
  });
}

	

$(document).ready(function(){
        $('#registerButton').bind('click',function(){
            if( $('#formElem').data('errors') ){
              alert('Пожалуйста, исправьте ошибки в форме!');
            } else {
              $.post("zakaz.php", { formString: objFields } );
                 alert('Спасибо, ваш заказ принят!');                
            }
            return false;
        });
});


Вот так выглядит код. Что в нем можно поменять?

ОлегА 15.07.2013 16:06

покажите код формы

westnord 15.07.2013 16:16

Цитата:

Сообщение от ОлегА (Сообщение 262420)
покажите код формы

<div id="steps">
                    <form id="formElem" name="formElem">
                        <fieldset class="step">
                           <legend>О компании</legend>
                  <p>
                    <label id="company_name" for="company_name">Название компании:</label>
                    <input id="company_name" name="company_name" type="text" />
                  </p>
                  <p>
                    <label id="username" for="username">Контактное лицо:</label>
                    <input id="username" name="username" type="text" autocomplete=OFF />
                  </p>
                  <p>
                    <label id="tel_number" for="tel_number">Контактный телефон:</label>
                    <input id="tel_number" name="tel_number" type="text" autocomplete=OFF onkeyup="this.value = !isNaN(parseInt(this.value)) ? parseInt(this.value) : ''"/>
                  </p>
                   <p>
                    <label id="email" for="email">Контактный email:</label>
                    <input id="email" name="email" type="email" autocomplete=OFF />
                  </p>
                  <p>
                    <label id="com_description" for="com_description">Краткое описание компании:</label>
                    <textarea id="com_description" name="com_description" placeholder="Размер, основные услуги, география, деятельность"></textarea>
                  </p>
                  <p>
                    <label id="business_type" for="business_type">Отрасль бизнеса:</label>
                    <textarea id="business_type" name="business_type" placeholder="Какой сегмент рынка занимает компания"></textarea>
                  </p>
                  <p>
                    <label id="website" for="website">Веб-сайт компании:</label>
                    <input id="website" name="website" title="В случае редизайна" type="text" autocomplete=OFF />
                  </p>
                   <p>
                    <label id="slogan" for="slogan">Слоган компании или девиз:</label>
                    <input id="slogan" name="slogan" type="text" autocomplete=OFF />
                  </p>
                        </fieldset>

...
//Далее идет код в виде шагов с fieldset'ами, как и код выше
...
//Последний шаг выглядит так:
<fieldset class="step">
                            <legend>Заключительный этап</legend>
							<p>
                    <label id="worktime" for="worktime">Сроки разработки проекта:</label>
                    <input id="worktime" title="Минимум 24 дня" name="worktime" value="24" type="text" autocomplete=OFF onkeyup="this.value = !isNaN(parseInt(this.value)) ? parseInt(this.value) : ''"/>
                  </p>
                  <p>
                    <label id="work_price" for="work_price">Бюджет:</label>
                    <input id="work_price" value="75000"  name="work_price" type="text" autocomplete=OFF onkeyup="this.value = !isNaN(parseInt(this.value)) ? parseInt(this.value) : ''"/>
                  </p>
                   <p>
                    <label id="month_work_price" for="month_work_price">Бюджет, на обслуживание (ежемесячно):</label>
                    <input id="month_work_price" value="10000"  name="month_work_price" type="text" autocomplete=OFF onkeyup="this.value = !isNaN(parseInt(this.value)) ? parseInt(this.value) : ''"/>
                  </p>
                  <p>
                    <label id="extra_message" for="extra_message">Дополнительные пожелания:</label>
                    <textarea id="extra_message" name="extra_message"></textarea>
                  </p>
                  <p> Если каждый шаг отмечен зеленой подтверждающей иконкой, то в форме все поля заполнены правильно.
                    Красная иконка указывает на наличие ошибок в некоторых полях ввода.
                    На данном последнем шаге вы подтверждаете правильность ввода информации. </p>
                  <p class="submit">
                    <button id="registerButton" type="submit">Подать заявку</button>
                  </p>
                        </fieldset>
                        
                    </form>
                </div>

Вот код формы

skrudjmakdak 15.07.2013 16:30

вот простейший пример:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<title>123</title>
	</head>
<body>
	<form action="zakaz.php" method="post">
		<textarea id="extra_message" name="extra_message"></textarea>
		<button id="registerButton" type="submit">submit</button>
	</form>
	<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
	<script type="text/javascript">
	$('form').submit(function()
		{
		$.post('zakaz.php', function(data)
			{
			console.log(data);
			});
		return false;
		});
	</script>
</body>
</html>

danik.js 15.07.2013 18:04

Можно return false, можно event.preventDefault() - в jQuery оба способа работают. На мой взгляд event.preventDefault более интуитивен и понятен.

westnord 15.07.2013 19:44

Цитата:

Сообщение от ОлегА (Сообщение 262420)
покажите код формы

А нужно ли подключать какие-нибудь библиотеки?
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script> 

    <script src="http://malsup.github.com/jquery.form.js"></script> 
<script type="text/javascript" src="sliding.form.js"></script>

Самый последний-это мой, остальные я подключил(взял из интернета)

westnord 15.07.2013 19:45

Цитата:

Сообщение от skrudjmakdak (Сообщение 262427)
вот простейший пример:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<title>123</title>
	</head>
<body>
	<form action="zakaz.php" method="post">
		<textarea id="extra_message" name="extra_message"></textarea>
		<button id="registerButton" type="submit">submit</button>
	</form>
	<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
	<script type="text/javascript">
	$('form').submit(function()
		{
		$.post('zakaz.php', function(data)
			{
			console.log(data);
			});
		return false;
		});
	</script>
</body>
</html>

Что по факту делает эта функция?


Часовой пояс GMT +3, время: 08:56.