Autor Zpráva
PavV
Profil
Prosím o radu, chci testovat případnou duplicitu při vložení nového uživatele. Problém je, že PHP mi stále hlásí že nemá data.

Kod js:
Při opravě dat již nemusí zadávat jméno a heslo

$("iframe").ready(function(){
   $("#myform").validate({
     rules: {
         jmeno: {
                    required: true,
                    minlength: 5
              },
         user: {
                    required: function(){return $("#action").val()=="pridat" ? true : false},
                    minlength: 5
              },
         pass: {
                    required: function(){return $("#action").val()=="pridat" ? true : false},
                    minlength: 5,
                    remote: {
                        url: "./duchoDupl.php",
                  type: "post",
                  async: false,
                  datatype: "json",
                        data: {id:function(){return $("#id").val();},
                         user:function(){return $("#user").val();},
                         pass:function(){return $("#pass").val();}
                                }
                     }
           }
      },
        messages: {
            pass: {
                        remote: "Tato varianta přistupového jména a hesla již existuje."
                    }
        }
   });
})

V PHP:
header("Content-type: application/json");
require_once "./system/data.php";
class pracDupl extends data{
    public function __construct( ) {
      parent::__construct();
        $id = $_POST["id"];
       $user = $_REQUEST["user"];
        $pass = $_REQUEST["pass"];

        $sql = "SELECT id FROM users WHERE id!=$id AND username='$user' AND pass=SHA1('$pass')";
        $navrat= parent::queryAll( $sql);
        if( !empty( count($navrat))){
            echo json_encode(false);
        }else{
            echo json_encode(true);
        }
    }
}

new pracDupl();


Dík za radu
Rfilip
Profil
Pokud se podíváš do Síť záložky vyvojarskych nástrojů prohlížeče, jak vypadá ten http požadavek na ten duchDup1.php soubor a jeho http odpověď ?
PavV
Profil
Rfilip
URL požadavku: localhost/cir/js/ducho_val.js?_=1540808189698
Metoda požadavku: GET
Vzdálená adresa:
Stavový kód: 200
Původ: xhr

nemůže být problém že ducho_val (jako každou validaci)načítám v ajaxu. Po načtení a otevření jquery.dialog? je to součást meho minisystemu.
Zajimavé je, že délky proměných fungují ok
Rfilip:
            $.ajax({
                data: formData,
                success: function (msg)
                {
//alert(msg);
                     var ret = $.parseJSON(msg);
                    if (ret["error"]!=""){
                        alert(ret["error"]);
                    }else{
                        if (typeof ret["head"] == "undefined") { ret["head"]= "";}
                        $("#dialog-form").html("<form id='myform' name='myform'>"+ret["text"]+"</form>");
                        $("textarea").jqte();
                        $("#dialog-form").dialog({
                            width: "auto",
                            title: ret["head"],
                            buttons:
                                [{text: ret["butt"]["text"],        //odesilam formular a zavru dialog
                                    click: function(){
                                        var isValid= ret["script"] == true ? $("#myform").valid() : true;
                                        if(isValid) {
                                              var formData = new FormData( $("#myform")[0]);
                                           formData.append( "f", form);
                                           formData.append( "akce", ret["butt"]["fc"]);
                                            $.ajax({
                                                data: formData,
                                                complete: function(){
                                                    if (typeof fcComplete == "function"){fcComplete();}
                                                },
                                                success: function (msg){
                                                    if( $("#article").length){
                                                        $("#article").html( msg);
                                                    }else{
                                                        $("body").html( msg);
                                                    }
                                                    afterLoad();
                                                }
                                            })
                                 $("script[src='./js/"+form+"_val.js']").remove();
                                            $(this).dialog("close");
                                        }
                                    }
                                },
                                {text: ret["butt"]["clos"],      // jen zavri dialog
                                    click: function() {
                                                    $("script[src='./js/"+form+"_val.js']").remove();
                                                    $(this).dialog("close");
                                                }
                                }
                                ] // button - end
                        })
                        if( ret["script"]){
                            $('head').append('<script type="text/javascript" src="./js/'+form+'_val.js"></script>');
                        }
                    }
                },
                error: function (request, status, error) {
                    alert(request.responseText);
                }
            })
PavV
Profil
Rfilip:
Při načítání :
URL požadavku: localhost/cir/js/ducho_val.js?_=1540808189698
Metoda požadavku: GET
Stavový kód: 200
Původ: xhr

a když to má otestovat
URL požadavku: localhost/cir/js/ducho_val.js?[object Object]&_=1540808189698
Metoda požadavku: GET
Stavový kód: 200
Původ: xhr

Php mi vrati jen to číslo
  $pom="";
    foreach ($_GET as $key => $val) {
        $pom.= $val;
//        $data[$key] = htmlspecialchars($val);
    }
            echo $pom;
Davex
Profil
Pro odeslání dat v objektu bys asi měl používat metodu POST a nikoliv GET.
PavV
Profil
Davex:
Ano, to je na zkoušku. Řeším proč mi jquery validate remote neodesílá data
Kajman
Profil
Ty požadavky, co jste zmínil, jdou na .js soubory místo na .php soubory. Jste si jistý, že v máte i .js soubory nakonfigurované, aby byl interpetován php kód? Nezpomněl jste v metodě ajax definovat parametr url? Co je v odpovědi?
PavV
Profil
Kajman:
Omlouvám se, přepsal jsem se. XHR mi vypíše
Po načtení
URL požadavku: localhost/cir/js/ducho_val.js?_=1540808189698
Metoda požadavku: GET
Stavový kód: 200
Původ: xhr

a když to má otestovat
URL požadavku: localhost/cir/duchoDupl.php?[object Object]&_=1540808189698
Metoda požadavku: GET
Stavový kód: 200
Původ: xhr
blaaablaaa
Profil
PavV:
Zajímá nás, co je v těle odpovědi (v DevTools záložka Network -> klik na daný request -> záložka Response)
Kajman
Profil
I v tom URL požadavku je podivnost [object Object], kdy metodě ajax asi předáváte jako data svůj speciální objekt a ne PlainObject.
PavV
Profil
Kajman:
Ano, měl jste pravdu. Pro ukládání jsem měl nastaven
$("iframe").ready(function(){
/*    $.ajaxSetup({
        type: "POST",
        cache: false,
      processData: false,
      contentType: false,
        url: "./akce.php",
      error: function (request, status, error) {
        alert(request.responseText);
        }
    });
    */
})

Po zapoznámkování vše začlo chodit, díky všem

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0