Codeigniter - Niciun rezultat după trimiterea datelor jQuery post

Lucrez la un formular de înscriere folosind framework-ul jQuery AJAX și Codeigniter PHP, însă codificatorul nu contează atât de mult, dacă vedeți echo form_open (); ciudat sau alte lucruri ciudate, nu vă faceți griji, toți sunt codificatori.

Bine, iată problema mea cu codul. Am încercat simplu post folosind jQuery mai jos (în codul PHP totul este omis și a adăugat un simplu ecou "hello, world!"; Funcția, și funcționează/oferindu-mi un salut, lumea!):

 $.post( 'ajax_signup_username' ,function(result){

                $(span_error).html(result);

            } );

Dar când am trecut o postare de date în ea, nu funcționează (nu emite niciun rezultat, rețineți că folosesc codul PHP complet scris de mai jos ):

$.post( 'ajax_signup_username', {php_username_error:username_value} ,function(result){

                $(span_error).html(result);

            } );

Am încercat să caut SO, dar soluțiile furnizate nu au rezolvat acest lucru. Ai vreo idee ce sa întâmplat?

Iată codurile complete:

Următorul este codul html:

<body>

<?php $attr = array( 'onsubmit' => 'return final_val()' ); echo form_open('formValidation/signUp',$attr); ?>



Username: <input type="text" onBlur="username_val()" value="<?php echo set_value('username')?>" name="username" maxlength="50" /><?php echo form_error('username'); ?>


Email: <input type="text" onBlur="email_val()" value="<?php echo set_value('email')?>" name="email" maxlength="50" /><?php echo form_error('email'); ?>


Password: <input type="password" onBlur="pass_val()" value="<?php echo set_value('pass')?>" name="pass" maxlength="50" autocomplete="off"/><?php echo form_error('pass'); ?>


Password Confirm: <input type="password" onBlur="pass_val()" value="<?php echo set_value('passconf')?>" name="passconf" maxlength="50" autocomplete="off" /><?php echo form_error('passconf'); ?>


<input type="submit" value="SIGN UP!" name="signup"/>

</form> </body>

Următorul este codul php:

function ajax_signup_username(){

    $username = $_POST['php_username_error'];

    $uniqueUn = $this->db->prepare("SELECT * FROM iowfiwefwmember WHERE username=:username");

    $uniqueUn->bindParam(':username', $username);

    $uniqueUn->execute();

    $count1 = $uniqueUn->fetch();

    if( $count1 == FALSE ){

        echo 'USERNAME AVAILABLE!';

    }else{

        echo 'USERNAME IS ALREADY USED!';

    }

}

Următorul este codul javascript:

function username_val(){

        $.ajaxSetup({ cache : false });

            username_value = $("input[name='username']").val();

            span_error = "span[name='username_error']";

            //$(span_error).load('ajax_signup_username', {php_username_error:username_value}); <-- also doesn't work [ $.ajaxSetup() is set to POST ]

            $.post( 'ajax_signup_username', {php_username_error:username_value} ,function(result){

                $(span_error).html(result);

            } );

    }
0
Ai o eroare de JavaScript? Ce se întâmplă atunci când faceți o solicitare de postare către adresa URL direct?
adăugat autor Explosion Pills, sursa
Navigarea @PHPForLife în browser nu este suficientă .. trebuie să faceți aceeași solicitare de post utilizând browserul sau un alt agent utilizator.
adăugat autor Explosion Pills, sursa
@PHPForLife un formular?
adăugat autor Explosion Pills, sursa
@PHPForLife dacă se poate face în ajax se poate face altfel. Va trebui să vă dați seama de asta, sau nu veți putea niciodată să testați solicitările ajax.
adăugat autor Explosion Pills, sursa
De asemenea, vă rugăm să nu deranjează codurile DOP, punctul este că după trimiterea unui date post în parametru, nu funcționează.
adăugat autor PHP For Life, sursa
@ ExplosionPills Bara de instrumente pentru dezvoltatorii web din firefox mi-a dat o eroare de server POST, dar am încercat să navighez în codul din browser și există.
adăugat autor PHP For Life, sursa
@vansimke Da, este. Când navigați în localhost/foo/bar/ajax_signup_username în browser, acesta există.
adăugat autor PHP For Life, sursa
@ ExplosionPills Cum fac asta?
adăugat autor PHP For Life, sursa
@ExplosionPills form_open() generează automat o metodă post în formular
adăugat autor PHP For Life, sursa
Încă nici un noroc
adăugat autor PHP For Life, sursa
ExplosionPills & vansimke - Ne pare rau pentru ca ati pierdut timpul pe aceasta, se dovedește că aceasta este de fapt o problemă de codificare, vă mulțumesc oricum! Noroc! : D
adăugat autor PHP For Life, sursa
cum conduci adresa URL "ajax_signup_username" la funcția? Este aceasta o magie CodeIgniter?
adăugat autor vansimke, sursa
@PHPForLife Dacă FireFox este griping, atunci apare ceva în neregulă în adresa URL. Încercați hardcoding adresa URL completă (localhost/foo/bar/...) în apelul $ .post și vedeți dacă aceasta face ceea ce doriți.
adăugat autor vansimke, sursa

1 răspunsuri

După ore îndelungate de a face fețe prostești în fața laptopului meu, am aflat că această problemă de codificare a fost IS , am activat protecția CSRF care a provocat problema. După ce dezactivați funcția CSRF, funcționează bine, asigurați-vă că nu repetați aceeași greșeală, tinerii! Noroc! : D

0
adăugat
Nu as recomanda CodeIgniter pentru noile evolutii. Deoarece Ellislab a decis să nu o mai suporte, a durat aproape 2 ani pentru ca unele soluții de bug-uri să fie realese de la versiunea 2.1.3 la 2.1.4. Dar da, pentru mine, caracteristicile CSRF au provocat și probleme.
adăugat autor Mauricio A. Cinelli, sursa
PHP România, Moldova
PHP România, Moldova
173 participanți

Vorbim despre Yii, Laravel, Symphony, MySQL, PgSQL, WP, OpenCart... Pentru confort, opriți notificările. Parteneri: https://ciupacabra.com @js_ro @node_ro @python_ro @seo_ro @Romania_Bot Offtop: @holywars_ro Joburi: @php_job @Grupuri_IT