Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.07.2013, 10:54
Интересующийся
Отправить личное сообщение для westnord Посмотреть профиль Найти все сообщения от westnord
 
Регистрация: 10.07.2013
Сообщений: 24

Сформировать массив данных и отправить его в PHP средствами JS
Привет всем! Я написал форму приема заказов на html, она обрабатывается скриптом JS.
var str;
	function showValues() {
      var fields = $(":input").serializeArray();
	  
      jQuery.each(fields, function(i, field){
	     fieldValue += field.value;
	 	 fieldName = field.name;
		   labelType += document.getElementById(fieldName).innerHTML;
		return $("#results").append(labelType + ' ' + fieldValue + ';');
	
      });
    }
	$(":checkbox, :radio").click(showValues);
    $("select, textarea, :text").change(showValues);
    showValues();


Это был первый (тестовый) файл, он работает по принципу: при заполнении формы все данные записываются в скрытый параграф с id="results", потом, после нажатия кнопки "отправить", при помощи скрипта проверяется правильность заполненности, считывается тот самый скрытый параграф и отправляется на страничку zakaz.php.

$(document).ready(function(){

	

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

В файле zakaz.php все обрабатывается следующим кодом:
<?
$date = date('d M Y H:i:s');

list($company_name, $username, $tel_number, $emai) = explode(";", $_POST['formString']);

$mail = "
 $company_name
 $username
 $tel_number
 $email
 
Дата отправки: $date";
$theme = "Заявка";
$DerMail = 'mymail@mail';
mail($DerMail,$theme,$mail);

Мне нужно, чтобы значения, которые передавались в скрытый параграф, просто сохранялись в массиве(так как этот скрытый параграф занимает много места на сайте и его трудно обрабатывать в php) и этот массив передавался на страничку zakaz.php
Заранее спасибо за помощь!
Ответить с цитированием
  #2 (permalink)  
Старый 15.07.2013, 11:43
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

1-ое

function showValues() {
  var objFields = {};
  jQuery.each(fields, function(i, field){
    labelType = document.getElementById(field.name).innerHTML;

    objFields[ labelType ] = field.value;
  });
}


2-ое

$(document).ready(function(){

	

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


3-е

обрабатываете массив в пхп
Ответить с цитированием
  #3 (permalink)  
Старый 15.07.2013, 12:32
Интересующийся
Отправить личное сообщение для westnord Посмотреть профиль Найти все сообщения от westnord
 
Регистрация: 10.07.2013
Сообщений: 24

Сообщение от ОлегА Посмотреть сообщение
1-ое

function showValues() {
  var objFields = {};
  jQuery.each(fields, function(i, field){
    labelType = document.getElementById(field.name).innerHTML;

    objFields[ labelType ] = field.value;
  });
}


2-ое

$(document).ready(function(){

	

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


3-е

обрабатываете массив в пхп
Спасибо, сейчас попробую!
Ответить с цитированием
  #4 (permalink)  
Старый 15.07.2013, 12:41
Интересующийся
Отправить личное сообщение для westnord Посмотреть профиль Найти все сообщения от westnord
 
Регистрация: 10.07.2013
Сообщений: 24

Сообщение от ОлегА Посмотреть сообщение
1-ое

function showValues() {
  var objFields = {};
  jQuery.each(fields, function(i, field){
    labelType = document.getElementById(field.name).innerHTML;

    objFields[ labelType ] = field.value;
  });
}


2-ое

$(document).ready(function(){

	

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


3-е

обрабатываете массив в пхп
А он будет выдавать значения вида label => name?
то есть Название компании: Айсберг(например.P.S.:это то значение, которое введет пользователь в input)
Ответить с цитированием
  #5 (permalink)  
Старый 15.07.2013, 13:40
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от westnord
ри заполнении формы все данные записываются в скрытый параграф с id="results"
Переменная? Не, не слышал..
Ответить с цитированием
  #6 (permalink)  
Старый 15.07.2013, 14:17
Интересующийся
Отправить личное сообщение для westnord Посмотреть профиль Найти все сообщения от westnord
 
Регистрация: 10.07.2013
Сообщений: 24

Сообщение от danik.js Посмотреть сообщение
Переменная? Не, не слышал..
У меня просто не получалось этого сделать, вы прочитайте, там написано, что это тестовая версия была
Ответить с цитированием
  #7 (permalink)  
Старый 15.07.2013, 14:22
Интересующийся
Отправить личное сообщение для westnord Посмотреть профиль Найти все сообщения от westnord
 
Регистрация: 10.07.2013
Сообщений: 24

Сообщение от ОлегА Посмотреть сообщение
1-ое

function showValues() {
  var objFields = {};
  jQuery.each(fields, function(i, field){
    labelType = document.getElementById(field.name).innerHTML;

    objFields[ labelType ] = field.value;
  });
}


2-ое

$(document).ready(function(){

	

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


3-е

обрабатываете массив в пхп
При отправке сообщения страничка просто перезагружается, все поля становятся пустыми, а все предыдущие значения убегают в адресную строку
Вот такого вида:
http://forma/?company_name=%D0%BF%D0...B2%D0%B0%D0%BF ....и так далее
В чем может быть проблема?
Ответить с цитированием
  #8 (permalink)  
Старый 15.07.2013, 14:28
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от westnord
В чем может быть проблема?
Так нужно предотвратить отправку формы.
$('#form').submit(function(e){

e.preventDefault(); //теперь форма не отправится

// тут обрабатываем отправку, например шлем $.post запрос.

});
Ответить с цитированием
  #9 (permalink)  
Старый 15.07.2013, 14:40
Интересующийся
Отправить личное сообщение для westnord Посмотреть профиль Найти все сообщения от westnord
 
Регистрация: 10.07.2013
Сообщений: 24

$(document).ready(function(){
$('#registerButton').bind('click',function(){
		if($('#formElem').data('errors')){
			alert('Пожалуйста, исправьте ошибки в форме!');
			return false;
		}else{
		$('#formElem').submit(function(e){

e.preventDefault(); //теперь форма не отправится

// тут обрабатываем отправку, например шлем $.post запрос.
$.post("zakaz.php", { formString: objFields } );
alert('Спасибо, ваш заказ принят!');
return false;
});


}
 });
});

Вот так можно прописать?
Ответить с цитированием
  #10 (permalink)  
Старый 15.07.2013, 14:44
Интересующийся
Отправить личное сообщение для westnord Посмотреть профиль Найти все сообщения от westnord
 
Регистрация: 10.07.2013
Сообщений: 24

Сообщение от danik.js Посмотреть сообщение
Так нужно предотвратить отправку формы.
$('#form').submit(function(e){

e.preventDefault(); //теперь форма не отправится

// тут обрабатываем отправку, например шлем $.post запрос.

});
Измененный код тоже почему-то не работает=( Но наверху(в адресной строке) этой строчки уже нет
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача данных из Uploadify в php frutality jQuery 9 22.04.2016 03:54
Через ajax отправить много данных из таблицы на сервер Heger jQuery 3 29.08.2012 18:51
JS + php возврат информации Phantom Общие вопросы Javascript 1 28.09.2011 17:53
PHP и JS жонглирование данными McLotos Общие вопросы Javascript 5 14.04.2011 16:16
Как передать массив данных на сервер DVVID Общие вопросы Javascript 7 08.04.2010 12:11