webForumDet fria alternativet

Ajax och CI problem

JavaScriptur Javascript

35 svar · 1 959 visningar · startad av Mycodez

Medlem sedan feb. 2010445 inlägg
Frågan#1

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 the form */
$("#foo").submit(function(event) {

    /* Stop form from submitting normally */
    event.preventDefault();

    /* Clear result div*/
    $("#result").html('');

    /* Get some values from elements on the page: */
    var values = $(this).serialize();

    /* Send the data using post and put the results in a div */
    $.ajax({
        type: this.method || get,
		url: this.action,
        data: values,
        dataType: 'json',
        success: function(data){
         			var msg = data.returned_val;
         			
          			if(msg=="yes")
          			{
              			$("#myModal").modal('hide');                                           
              			return true;
         			}
         			else
         			{
         				var er = "";
            			alert('Server error');
            			for (var i=0; i<data.error.length; i++) {
            				er = er + '<br>'+data.error[i];
						}
            		//return false;
        			$("#result").html(' - Du har följande fel - ' + er);
        			}
        },
        error:function(){
            alert("failure");
        }
    });
});

och min funktion där jag har mitt anrop till ser ut

function edit_work(){
	
			if($this->input->post()){
			/* här sker valideringen */

			$this->form_validation->set_rules($config);
			$this->form_validation->set_error_delimiters('<div class="alert alert-error">', '</div>');
			if ($this->form_validation->run() == FALSE){
				return json_encode(array('returned_val' => 'no', 'error' => validation_errors()));
				//return validation_errors();
			}else{
				return json_encode(array('returned_val' => 'yes'));
			}	
		}	
	}

vad är det jag har gjort fel? kan säga jag blir frustrerad över detta :/

Medlem sedan feb. 2010445 inlägg
#2

Jag har får nu bara ajaxens error som körs och inget annat händer :/

Medlem sedan juni 20019 519 inlägg
#3

vad säger konsollen i din webbläsare när ajax anropet körs?

Medlem sedan feb. 2010445 inlägg
#4

Jag får inget i konsollen :S Vad kan det var då? :/

Medlem sedan juni 20019 519 inlägg
#5

F12 på de flesta webbläsare idag och där skall du se konsollen om du letar.

du kan ju även köra en console.log(data) för att presentera för oss hur ditt JSON objekt ser ut som du få tillbaka

Medlem sedan feb. 2010445 inlägg
#6

Fortfarande inget:/
http://www.beta.jobbsokarna.nu/user/view/1 testa själv om du får upp något tryck på redigera under yrkes erfarenheter, då kommer modalen upp och det är där sen när man trycker på spara ändringar som ajax requesten ska utföras

Medlem sedan juni 20019 519 inlägg
#7

hjälpte inte direkt mycket få 404

Medlem sedan feb. 2010445 inlägg
#8

Detta fick jag då

när jag körde console.log(data)
[a#data.btn btn-default, a#data.btn btn-default, a#data.btn btn-default, item: function, namedItem: function]

Medlem sedan feb. 2010445 inlägg
#9

Ändra jag i min php funktion från return till echo så fick jag ingen feedback i loggen och fick inte upp alert("failure")

Medlem sedan juni 20019 519 inlägg
#10

Mycodez skrev:

Detta fick jag då

när jag körde console.log(data)
[a#data.btn btn-default, a#data.btn btn-default, a#data.btn btn-default, item: function, namedItem: function]

var kör du den? du skall ju ha den inne i din sucess callback funktion

Mycodez skrev:

Ändra jag i min php funktion från return till echo så fick jag ingen feedback i loggen och fick inte upp alert("failure")

Ja, för det bli en sträng och inte ett JSON objekt.

Medlem sedan feb. 2010445 inlägg
#11

jag får inget svart från console.log(data) i från successen, men från error: så får jag det angivna svaret:/

Okej då hänger jag med tror jag^^

Medlem sedan feb. 2010445 inlägg
#12

Nu kan ni testa sidan jag såg att jag hade en spärr på sidan. men nu kan ni testa ^^

Medlem sedan feb. 2010445 inlägg
#13

Märker en grej, när jag kör echo så får jag en response i ajaxen men får inte response när jag kör return.

men en fråga hur får jag tag modalens id med eller så? :)

Medlem sedan juni 20019 519 inlägg
#14

fungera för mig... men du har inget som har ett id med #myModal så det bli ju svårt att triggar det eventet. Sen behöver du inte return i din callback på ajax.

däremot finns $("#myModal15") kör du random nummer(eller något id på dessa? iså fall få du ju bygga om din selector:

$(".modal:visible")

borde fungera bättre för dig.

Du behöver nog lära dig lite hur webbverktygen i din webbläsare fungera bli betydligt enklare att felsöka dina koder ;)

Medlem sedan feb. 2010445 inlägg
#15

Detta med #modal15 och så det är #modal är modalen som finns sen 15 är id som är kopplat till databasen :)

Kanon det gjorde det :)

Jaa det håller jag med om. men jag är "ny" med detta och jag har knappt använt detta men klart jag ska lära mig mera om verktygen ^^ har du fler tips? en google chromes console och firebug? :) eller finns det fler knepp? :)

Medlem sedan feb. 2010445 inlägg
#16

En fråga till, Varför fungerar första men när jag testar dem andra så visas det som ska visas som response som json data från php funktionen? någon idé

Medlem sedan juni 20019 519 inlägg
#17

Mycodez skrev:

En fråga till, Varför fungerar första men när jag testar dem andra så visas det som ska visas som response som json data från php funktionen? någon idé

Vet inte riktigt vad du menar men om du hämta formuläret med ajax eller skriver över den så måste du ju binda om eventet för submit

edit:

jaha du skall ha flera knappar, du är medveten om att ett ID får bara finnas en gång? du binder submit på ett #foo du kan alltså inte ha fler än en #foo per sida i din DOM.

istället för #foo så kan du kanske köra med: $(".modal form")

Medlem sedan feb. 2010445 inlägg
#18

Ne det visste jag faktiskt inte men varför kan man ha fler class(.modal form) än id:n (#)?

edit:
Det funkar nu med (.modal form) :)

Medlem sedan juni 20019 519 inlägg
#19

för spec:en är så?

CSS mässigt så kommer du kunna ha flera element med samma id men JS har:

document.getElementById

dvs den kommer bara hämta en DOM-element.

id är unikt och innan html5 så fick den inte starta med ett tal ( http://www.w3.org/html/wg/drafts/html/master/dom.html#the-id-attribute )

Medlem sedan feb. 2010445 inlägg
#20

Okej :) Tackar och dockar nu funkar allt som det ska tror jag ^^ det gör det jag vill den ska göra :)

146 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
143 ms — hämta tråd, inlägg och bilagor (db)