Jump to content
php.lv forumi
  • 0

Saglabāt ierakstītās vērtības un padot jaunajam DOM'am


anonīms

Question

Ir esošs ajax kods:

 

				var field_values = saveFieldValues();
				$.get(url, function(data) {
					$('.calendar_clicked_page').html(data);
					$('.calendar_clicked_page').css('opacity',1);
					Drupal.attachBehaviors('.calendar_clicked_page'); 
					getFieldValues(field_values);
				});
 

un otrs kods, kurš nezinu cik vispār saprātīgs ir, bet nu tāds `fast` variants iespējams ir

 

	// Save field values
	function saveFieldValues() {
		var data = {};
		data['visitors'] = {};
		data['additional'] = {};
		jQuery('.reservation_visitors input[type="text"]').each(function() {
			data['visitors'][jQuery(this).attr('id')] = jQuery(this).val();
		});
		
		$('.reservation_additional input, .reservation_additional textarea').each(function() {
			data['additional'][$(this).attr('id')] = $(this).val();
		});
		return data;
	}
	
	// Get field values
	function getFieldValues(data) {
        $(data['visitors'],data['additional']).each(function(key,value) {
            $('#'+key).val(value);
        });
 

 

 

Ko man vajag? Lai ievadītās text'a lauku vērtības nepazūd, kad tiek pārlādēts saturs šajā .calendar_clicked_page?

Bija doma, ka vienkārši samaucam arrayj'ā un pēc tam, kad ielādēts jaunais html, tad saliekam pa jaunu visus datus, bet nekā. 

Caur fju viņš pretīm neņem, bet caur browsera konsoli padotie gan strādā. Tātad neatrod vnk kodā šķiet, ka..

 

Kādi varianti no Jūsu puses?

Edited by anonīms
Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Man liekas, problēma ir tajā, ka jQuery nesaprot, ka tu viņam dod divus masīvus. Pamēģini



function getFieldValues(data) {
 $(data).each(function(k1,v1){
  $( v1 ).each(function(key,value) {
   $('#'+key).val(value);
  });
 });
}
//Vai arī vienkārši
function getFieldValues(data) {
  $( data['visitors'] ).each(function(key,value) {
   $('#'+key).val(value);
  });
  $( data['additional'] ).each(function(key,value) {
   $('#'+key).val(value);
  });
}
Edited by draugz
Link to comment
Share on other sites

  • 0

Un kur problēma nodebugot ar console.log, atrod vai neatrod kaut ko. Vai arī mums to zīlēt, neredzot kāds tev tur html izskatās, ko atgriež ajax utt utt.

miskuzimuā

 

Object {visitors: Object, additional: Object}
additional: Object
edit-additional-class: ""
edit-additional-note: "asdadadadas"
edit-additional-worksheets: "1"
__proto__: Object
visitors: Object
edit-visitors-1-name: "asdasd"
edit-visitors-1-place: "asdasdasd"
__proto__: Object
__proto__: Object

 

baigi dīvaini. Izskatās, ka each īsti nenostrādā kā plānots...

 

http://jsfiddle.net/Dw7K6/1/

reāli itāpat viņš eachā nesadala viņus, bet value izvada atkal visu objektu. 

Edited by anonīms
Link to comment
Share on other sites

  • 0


// Save field values

function saveFieldValues() {

var data = {};

data['visitors'] = {};

data['additional'] = {};

$('.reservation_visitors input[type="text"]').each(function() {

data['visitors'][$(this).attr('id')] = $(this).val();

});

 

$('.reservation_additional input, .reservation_additional textarea').each(function() {

data['additional'][$(this).attr('id')] = $(this).val();

});

return data;

}

 

// Get field values

function getFieldValues(data) {

$.each(data.visitors, function(key,value) {

$('#'+key).val(value);

});

$.each(data.additional, function(key,value) {

$('#'+key).val(value);

});

}

 

Edited by anonīms
Link to comment
Share on other sites

  • 0

Anonīms, Pēc kāda principa piešķīri sev best answer? Ja redze nemāna, tad pāris postus augstāk esmu uzrakstījis un tu savā risinājumā izmanto manis doto otro variantu!

Edited by draugz
Link to comment
Share on other sites

  • 0

ja jau "best answer", tad kāpēc tur:

* vienā vietā izmanto jQuery, otrā $ ?

* kas par console.log palicis?

* f-ja kas sākas ar "get" neatgriež neko, bet otra f-ja kas sākas ar  "save" salasa datus un tos agriež?

 

vairāk pēc "works for me answer"  izskatās :p

Link to comment
Share on other sites

  • 0

maitas :D 

 

draugz, diemžēl nē. Jā, iespējams tavs variants par to, ka tiek padoti 2 array'i iespējams ir pareizs, bet pirms tam testējot katru savā tāpat negāja. Problēma vienkārši bija tajā, ka tas viss ir nevis masīvs, bet object'ā.. data['visitors'] != data.visitors 

 

daGrevis, why not? :D 

 

v3rb0

1. jo pirmā fja tika testēta konsolē un tur ar $ nestrādā  ;[[

2. jo es aizmirsu izņemt

3. nepiekasies :D 

 

 

vairāk pēc "works for me answer"  izskatās :p

 

(sun)

Slēdzu ciet. Citādi vēl sāksiet te reklamēt savus saitus

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...