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

1$("iframe").ready(function(){
2   $("#myform").validate({
3     rules: {
4         jmeno: {
5                    required: true,
6                    minlength: 5
7              },
8         user: {
9                    required: function(){return $("#action").val()=="pridat" ? true : false},
10                    minlength: 5
11              },
12         pass: {
13                    required: function(){return $("#action").val()=="pridat" ? true : false},
14                    minlength: 5,
15                    remote: {
16                        url: "./duchoDupl.php",
17                  type: "post",
18                  async: false,
19                  datatype: "json",
20                        data: {id:function(){return $("#id").val();},
21                         user:function(){return $("#user").val();},
22                         pass:function(){return $("#pass").val();}
23                                }
24                     }
25           }
26      },
27        messages: {
28            pass: {
29                        remote: "Tato varianta přistupového jména a hesla již existuje."
30                    }
31        }
32   });
33})
$("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:
1header("Content-type: application/json");
2require_once "./system/data.php";
3class pracDupl extends data{
4    public function __construct( ) {
5      parent::__construct();
6        $id = $_POST["id"];
7       $user = $_REQUEST["user"];
8        $pass = $_REQUEST["pass"];
9 
10        $sql = "SELECT id FROM users WHERE id!=$id AND username='$user' AND pass=SHA1('$pass')";
11        $navrat= parent::queryAll( $sql);
12        if( !empty( count($navrat))){
13            echo json_encode(false);
14        }else{
15            echo json_encode(true);
16        }
17    }
18}
19 
20new pracDupl();
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( !emptycount($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:
1            $.ajax({
2                data: formData,
3                success: function (msg)
4                {
5//alert(msg);
6                     var ret = $.parseJSON(msg);
7                    if (ret["error"]!=""){
8                        alert(ret["error"]);
9                    }else{
10                        if (typeof ret["head"] == "undefined") { ret["head"]= "";}
11                        $("#dialog-form").html("<form id='myform' name='myform'>"+ret["text"]+"</form>");
12                        $("textarea").jqte();
13                        $("#dialog-form").dialog({
14                            width: "auto",
15                            title: ret["head"],
16                            buttons:
17                                [{text: ret["butt"]["text"],        //odesilam formular a zavru dialog
18                                    click: function(){
19                                        var isValid= ret["script"] == true ? $("#myform").valid() : true;
20                                        if(isValid) {
21                                              var formData = new FormData( $("#myform")[0]);
22                                           formData.append( "f", form);
23                                           formData.append( "akce", ret["butt"]["fc"]);
24                                            $.ajax({
25                                                data: formData,
26                                                complete: function(){
27                                                    if (typeof fcComplete == "function"){fcComplete();}
28                                                },
29                                                success: function (msg){
30                                                    if( $("#article").length){
31                                                        $("#article").html( msg);
32                                                    }else{
33                                                        $("body").html( msg);
34                                                    }
35                                                    afterLoad();
36                                                }
37                                            })
38                                 $("script[src='./js/"+form+"_val.js']").remove();
39                                            $(this).dialog("close");
40                                        }
41                                    }
42                                },
43                                {text: ret["butt"]["clos"],      // jen zavri dialog
44                                    click: function() {
45                                                    $("script[src='./js/"+form+"_val.js']").remove();
46                                                    $(this).dialog("close");
47                                                }
48                                }
49                                ] // button - end
50                        })
51                        if( ret["script"]){
52                            $('head').append('<script type="text/javascript" src="./js/'+form+'_val.js"></script>');
53                        }
54                    }
55                },
56                error: function (request, status, error) {
57                    alert(request.responseText);
58                }
59            })
            $.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
1  $pom="";
2    foreach ($_GET as $key => $val) {
3        $pom.= $val;
4//        $data[$key] = htmlspecialchars($val);
5    }
6            echo $pom;
  $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
1$("iframe").ready(function(){
2/*    $.ajaxSetup({
3        type: "POST",
4        cache: false,
5      processData: false,
6      contentType: false,
7        url: "./akce.php",
8      error: function (request, status, error) {
9        alert(request.responseText);
10        }
11    });
12    */
13})
$("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
Toto vlákno je staré, již dlouho do něj nikdo nepřispíval.

Informace a odkazy zde uváděné už nemusejí být aktuální. Nechcete-li řešit zde uvedenou konkrétní otázku, založte si vlastní vlákno, nepište do tohoto. Vložíte-li sem nyní příspěvek, upoutáte pozornost mnoha lidí a někteří z nich si jen kvůli vám přečtou i všechny předcházející příspěvky. Předpokládáte-li, že váš text skutečně bude hodnotný, stiskněte následující tlačítko:


Běda vám, jestli to bude blábol.

0