Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Передача данных из формы javascript (https://javascript.ru/forum/jquery/39356-peredacha-dannykh-iz-formy-javascript.html)

Deff 27.06.2013 19:15

nikolaymac,
Поясняйте - где массив - на сервере или на клиенте ?

nikolaymac 27.06.2013 19:23

я же выложил полный код
<script>
$(document).ready(function(){



	var t = $('div.inputs input').size();


	$('#add').click(function() {
		$('<div><input type="text" class="field" name="dynamic[]"  /> <input type="text" class="field" name="dynamic[]"  /></div>').fadeIn('slow').appendTo('.inputs');
		t++;
	if(t==6){
	
	$('#add').hide() 
	}
		
	});
	
	$('#remove').click(function() {
	if(t > 1) {
		$('.field:last').remove();
		$('.field:last').remove();
		t--; 
		$('#add').show() 
	}
	});
	
	$('#reset').click(function() {
	while(t > 2) {
		$('.field:last').remove();
		$('.field:last').remove();
		t--;
		$('#add').show() 
	}
	});
	

// here's our click function for when the forms submitted
	
	$('.submit').click(function(){
	
	var answers = [];
    $.each($('.field'), function() {
        answers.push($(this).val()); 
	
    });

	
    
  // Отсылаем паметры
       $.ajax({
                type: "POST",
                url: "new.php",
                data: "data="+answers,
                // Выводим то что вернул PHP
                success: function(html) {
 //предварительно очищаем нужный элемент страницы
                        $("#result").empty();
//и выводим ответ php скрипта
                        $("#result").append(html);
                }
				
        });  

	
	
	
	
	return false;
							
	});
	
	

});

</script>

<div id="container">

<div class="dynamic-form">

<a href="#" id="add">Добавить</a> | <a href="#" id="remove">Удалить</a>  | <a href="#" id="reset">Сбросить</a>  

<form>
<div class="inputs">
<div><input type="text" name="dynamic[]" class="field" >
<input type="text" name="dynamic[]" class="field" ></div>
</div>
<input name="submit" type="button" class="submit" value="ОК">
</form>
<div id="result"></div>
</div>

nikolaymac 27.06.2013 19:28

в итоге хочу получить две переменные типа input1 = "значение" input2 = "значение"

и снова input1 = "значение" input2 = "значение" это следующий динамический блок input

Deff 27.06.2013 19:39

Ну вместо этого:

40	    $('.submit').click(function(){
41	     
42	    var answers = [];
43	    $.each($('.field'), function() {
44	        answers.push($(this).val()); 
45	     
46	    });
47	 
48	     
49	     
50	  // Отсылаем паметры
51	       $.ajax({
52	                type: "POST",
53	                url: "new.php",
54	                data: "data="+answers,
55	                // Выводим то что вернул PHP
56	                success: function(html) {
57	 //предварительно очищаем нужный элемент страницы
58	                        $("#result").empty();
59	//и выводим ответ php скрипта
60	                        $("#result").append(html);
61	                }
62	                 
63	        });

Наверно так
var outData='';
$('.submit').click(function(){
 outData = $(this).parents('form').serialize();
if(!outData) return;
// Oтcылaeм пaмeтpы
 $.ajax({
   type: "POST",
   url: "new.php",
   data: "data="+outData,
   // Bывoдим тo чтo вepнyл PHP
   success: function(html) {
     //пpeдвapитeльнo oчищaeм нyжный элeмeнт cтpaни
     $("#result").empty();
     //и вывoдим oтвeт php cкpиптa
     $("#result").append(html);
   }
 });return false;
});

nikolaymac 27.06.2013 19:44

Цитата:

Сообщение от Deff (Сообщение 258856)
Ну вместо этого:

40	    $('.submit').click(function(){
41	     
42	    var answers = [];
43	    $.each($('.field'), function() {
44	        answers.push($(this).val()); 
45	     
46	    });
47	 
48	     
49	     
50	  // Отсылаем паметры
51	       $.ajax({
52	                type: "POST",
53	                url: "new.php",
54	                data: "data="+answers,
55	                // Выводим то что вернул PHP
56	                success: function(html) {
57	 //предварительно очищаем нужный элемент страницы
58	                        $("#result").empty();
59	//и выводим ответ php скрипта
60	                        $("#result").append(html);
61	                }
62	                 
63	        });

Наверно так
var outData='';
$('.submit').click(function(){
 outData = $(this).parents('form').serialize();
if(!outData) return;
// Oтcылaeм пaмeтpы
 $.ajax({
   type: "POST",
   url: "new.php",
   data: "data="+outData,
   // Bывoдим тo чтo вepнyл PHP
   success: function(html) {
     //пpeдвapитeльнo oчищaeм нyжный элeмeнт cтpaни
     $("#result").empty();
     //и вывoдим oтвeт php cкpиптa
     $("#result").append(html);
   }
 });return false;
});

выводит name= и все

nikolaymac 27.06.2013 20:25

спасайте !

Deff 27.06.2013 20:39

Цитата:

Сообщение от nikolaymac
выводит name= и все

Наверно HTML формы кривое, вставьте для теста и заполните поля
<form>
<div class="inputs">
<div><input type="text" name="dynamic1" class="field" >
<input type="text" name="dynamic1" class="field" ><br>
<input type="text" name="dynamic2" class="field" ><br>
<input type="text" name="dynamic3" class="field" ><br>
</div>
<input type="button" class="submit" value="ОК">
</form>

nikolaymac 27.06.2013 20:41

Дак вот именно что нельзя указывать dynamic1 2 3 так как формы создаются динамически ! тоесть может быть потом и dynamic 9 10 11

Deff 27.06.2013 20:43

Цитата:

Сообщение от nikolaymac
Дак вот именно что нельзя указывать dynamic1 2 3 так как формы создаются динамически ! тоесть может быть потом и dynamic 9 10 11

Вы для начала - проверьте как дал, про создания динамической вставки - вопрос второстепенный,
Проверьте воспроизводимость полученных данных из статического варианта...
Не надо пробовать всё и всё сразу

nikolaymac 27.06.2013 21:00

<body>





<form>



<div>
<form>
  <input type="text" name="a" value="1" id="a" />
  <input type="text" name="b" value="2" id="b" />
</form>
</div>
<input type="button" class="submit" value="ОК">
</form>
<div id="result"></div>


</body></html>



<script>
$(document).ready(function(){

$('.submit').click(function(){
  var s = $('form').serialize();


  // Отсылаем паметры
       $.ajax({
                type: "POST",
                url: "new.php",
                data: "data="+s,
                // Выводим то что вернул PHP
                success: function(html) {
 //предварительно очищаем нужный элемент страницы
                        $("#result").empty();
//и выводим ответ php скрипта
                        $("#result").append(html);
                }
        });  
	return false;						
	});

});
</script>


принемаю так
<?
$data=$_POST[data];

var_dump($data);

выдает только первый
string(11) "a=sss....значение"


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