webForumDet fria alternativet

Ajax och CI problem

JavaScript

35 svar · 1 963 visningar · startad av Mycodez · sida 2 av 2

Frågan, av Mycodez

Hej, Jag hat suttit och blivit galen på detta nu. Jag har suttit och arbetat på ett ajax anrop och nu när jag har arbetat en formvalidering till mitt form som finns is CI men det är något som är fel jag vet dock inte vad :/ jag gör mitt anrop men då skickas jag till sidan där jag har mitt anrop till eller så blir det att ajax:error körs :/ Min javascriot ser ut / Attach a submit handler to

Läs frågan i sin helhet →
Medlem sedan feb. 2010445 inlägg
#21

Jag har ett par datepickers i denna modal. men jag får inte att datumen ska skrivas i i rätt fält.

om jag trycker på en den modalen som ligger längst ner så kommer det datumet jag valde i den första modalen.

Min kod för datepickern ser ut

$(function() {
    $( ".modal:visible #to" ).datepicker({
      changeMonth: true,
      numberOfMonths: 2,
      changeMonth: true,
      changeYear: true,
      dateFormat: "yy-mm-dd",
      onClose: function( selectedDate ) {
        $( ".modal:visible #to" ).datepicker( "option", "minDate", selectedDate );
      }
    });
    $( ".modal #from" ).datepicker({
      changeMonth: true,
      numberOfMonths: 2,
      changeMonth: true,
      changeYear: true,
      dateFormat: "yy-mm-dd",
      onClose: function( selectedDate ) {
        $( ".modal #from" ).datepicker( "option", "maxDate", selectedDate );
      }
    });
});

vad kan var fel?

Medlem sedan juni 20019 519 inlägg
#22

ingen av dom är väl visible vid inladdning $( ".modal:visible #to" ) är väl ett tom kollektion? fattar faktiskt inte varför du vill köra med så mycket id:n

nu gissar jag bara:

$(function() {
	$( ".modal input[name='to']" ).each(function(){
		var current = $(this);
		current.datepicker({
			changeMonth: true,
			numberOfMonths: 2,
			changeMonth: true,
			changeYear: true,
			dateFormat: "yy-mm-dd",
			onClose: function( selectedDate ) {
			current.datepicker( "option", "minDate", selectedDate );
			}
		});
	});

	$(".modal input[name='from']").each(function(){
		var current = $(this);
		current.datepicker({
			changeMonth: true,
			numberOfMonths: 2,
			changeMonth: true,
			changeYear: true,
			dateFormat: "yy-mm-dd",
			onClose: function( selectedDate ) {
				current.datepicker( "option", "maxDate", selectedDate );
			}
		});
	});
});

är nog det du är ute efter?

Medlem sedan feb. 2010445 inlägg
#23

Ne det funkar inte tyvärr :/

Varför jag kör med id:n är nog sen jag lärde mig utveckla smått i skolan.

Medlem sedan juni 20019 519 inlägg
#24

Mycodez skrev:

Ne det funkar inte tyvärr :/

Varför jag kör med id:n är nog sen jag lärde mig utveckla smått i skolan.

du få nog berätta problemet bättre än vad du gör just nu för din kod säger mig inte mycket vad du egentligen vill göra.

Medlem sedan feb. 2010445 inlägg
#25

Okej om jag säger såhär.

Jag har x antal olika modals som finns för att kunna skapa/ändra sin data som finns. Denna funktion jag gör är som en CV bas kan man säga. där man kan kunna lägga till erfarenheter och sånt. Och för jobb och skola så har man gjort det under olika tidsperioder. och det är då datepickern kommer in i bilden. för att göra det smidigt. och för min profil så har jag tex 3 olika yrkes erfarenheter och då finns det 3 olika modals med datepickers men när jag tex vill ändra slutdag eller startdag på min sista erfarenhet så ändras modals data i första modalen. men det vill jag inte att det är så.

förstår ni?

Medlem sedan juni 20019 519 inlägg
#26

bör det inte vara:

current.val(selectedDate);

istället för

current.datepicker( "option", "maxDate", selectedDate );

?

Medlem sedan feb. 2010445 inlägg
#27

nee funkar fortfarande inte.

jag har två versioner och ingen av dem fungerar :/

$(function() {
	$( ".modal input[name='to']" ).each(function(){
		var current = $(this);
		current.datepicker({
			changeMonth: true,
			numberOfMonths: 2,
			changeMonth: true,
			changeYear: true,
			dateFormat: "yy-mm-dd",
			onClose: function( selectedDate ) {
			current.datepicker( "option", "minDate", selectedDate );
			}
		});
	});

	$(".modal input[name='from']").each(function(){
		var current = $(this);
		current.datepicker({
			changeMonth: true,
			numberOfMonths: 2,
			changeMonth: true,
			changeYear: true,
			dateFormat: "yy-mm-dd",
			onClose: function( selectedDate ) {
				current.datepicker( "option", "maxDate", selectedDate );
			}
		});
	});
})

//Denna är ut kommenderad
/*$(function() {
    $( ".modal:visible input[name='to']" ).datepicker({
      changeMonth: true,
      numberOfMonths: 2,
      changeMonth: true,
      changeYear: true,
      dateFormat: "yy-mm-dd",
      onClose: function( selectedDate ) {
        $( ".modal:visible input[name='to']" ).datepicker( "option", "minDate", selectedDate );
      }
    });
    $( ".modal input[name='from']" ).datepicker({
      changeMonth: true,
      numberOfMonths: 2,
      changeMonth: true,
      changeYear: true,
      dateFormat: "yy-mm-dd",
      onClose: function( selectedDate ) {
        $( ".modal input[name='from']" ).datepicker( "option", "maxDate", selectedDate );
      }
    });
});*/
Medlem sedan juni 20019 519 inlägg
#28

from skall sätta max datum, nu hänger jag med, du måste ju iså fall länka ihop dessa två element på något sätt:

$(function() {
	$(".modal").each(function(){
		var to = $(" input[name='to']", this);
		var from = $(" input[name='from']", this);

		to.datepicker({
			changeMonth: true,
			numberOfMonths: 2,
			changeMonth: true,
			changeYear: true,
			dateFormat: "yy-mm-dd",
			onClose: function( selectedDate ) {
				from.datepicker( "option", "minDate", selectedDate );
			}
		});

		from.datepicker({
			changeMonth: true,
			numberOfMonths: 2,
			changeMonth: true,
			changeYear: true,
			dateFormat: "yy-mm-dd",
			onClose: function( selectedDate ) {
				to.datepicker( "option", "maxDate", selectedDate );
			}
		});

	});
});
Medlem sedan feb. 2010445 inlägg
#29

Det funkar men det ändrar fortfarande fel modal.

om jag säger så här så här e strukturen.

modal1
modal2
modal3
modal_laggtill

och när jag är i modal3 så ändrar den fältet i modal1 och man ser inte att man har ändrat i modal3 där det ska finnas.

Medlem sedan juni 20019 519 inlägg
#30

Mycodez skrev:

Det funkar men det ändrar fortfarande fel modal.

om jag säger så här så här e strukturen.

modal1
modal2
modal3
modal_laggtill

och när jag är i modal3 så ändrar den fältet i modal1 och man ser inte att man har ändrat i modal3 där det ska finnas.

då vet jag inte, borde inte göra det för den kör varje modal som ett eget block. Har du någon annan kod som också har med datum att göra så du inte binder två plugin?

men det verkar ju så att du har nog inte satt några gränser från början när du sätter datepicker vid laddning av sidan, detta borde du väl ändå ha?

Medlem sedan feb. 2010445 inlägg
#31

nee för detta är en egen javascript fil och det är det ända i denna och även den ända javascript koden som rör datepicker,

men det som också rör datumen annars är min php kod som räknar antal månader mellan de två olika datumen men de rör dock dem sparade datumen som kommer från databasen

$d1 = $v['start-date'];
$d2 = ($v['is-current']==1) ? date("Y-m-d",time()) : $v['end-date'];
											
echo "(". (int)abs((strtotime($d1) - strtotime($d2))/(60*60*24*30))." månader)";
Medlem sedan feb. 2010445 inlägg
#32

men märkte en sak när jag var inne i modal1 och ändra slut datumet så ändrades startdagen också :/

Medlem sedan juni 20019 519 inlägg
#33
$(function() {
	$(".modal").each(function(){
		var to = $(" input[name='to']", this);
		var from = $(" input[name='from']", this);

		to.datepicker({
			changeMonth: true,
			numberOfMonths: 2,
			changeMonth: true,
			changeYear: true,
			dateFormat: "yy-mm-dd",
			onSelectType: function( selectedDate ) {
				from.datepicker( "option", "minDate", selectedDate );
			}
		});

		from.datepicker({
			changeMonth: true,
			numberOfMonths: 2,
			changeMonth: true,
			changeYear: true,
			dateFormat: "yy-mm-dd",
			onSelectType: function( selectedDate ) {
				to.datepicker( "option", "maxDate", selectedDate );
			}
		});

		from.datepicker( "option", "minDate", to.datepicker( "getDate" ) );
		to.datepicker( "option", "maxDate", from.datepicker( "getDate" ) );

	});
});

kanske? och ta bort id:na dom är inte unika på din sida

Medlem sedan feb. 2010445 inlägg
#34

Jag tog bort de flesta, förutom dem unika. Sen en sak din kod voigtann1 gör av någon anledning att slutdagen visas samtidigt i start också. Knasigt. Men annars så funkar det nu :)

Medlem sedan juni 20019 519 inlägg
#35

$("[id='from']") gav mig tre träffar, du måste få alla dina element unika för om man kollar data objektet på ditt element så har du:

id	"from"

vilket är förmodligen därför du få problem.

Medlem sedan feb. 2010445 inlägg
#36

Jag tog bort id.na och ändrade

from.datepicker( "option", "minDate", to.datepicker( "getDate" ) );
to.datepicker( "option", "maxDate", from.datepicker( "getDate" ) );

till

from.datepicker( "option", "minDate", from.datepicker( "getDate" ) );
to.datepicker( "option", "maxDate", to.datepicker( "getDate" ) );

och då funkade det ^^

264 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)