Autor | Zpráva | ||
---|---|---|---|
PavV Profil |
#1 · Zasláno: 29. 10. 2018, 08:50:54 · Upravil/a: Moderátor (editace znemožněna) 6. 11. 2018, 23:46:52
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 |
#2 · Zasláno: 29. 10. 2018, 10:20:15
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); } }) |
||
Časová prodleva: 8 dní
|
|||
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 |
#5 · Zasláno: 6. 11. 2018, 20:43:27
Pro odeslání dat v objektu bys asi měl používat metodu POST a nikoliv GET.
|
||
PavV Profil |
#6 · Zasláno: 7. 11. 2018, 08:08:09
Davex:
Ano, to je na zkoušku. Řeším proč mi jquery validate remote neodesílá data |
||
Kajman Profil |
#7 · Zasláno: 7. 11. 2018, 09:15:20
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 |
#9 · Zasláno: 9. 11. 2018, 11:05:03
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 |
#11 · Zasláno: 9. 11. 2018, 15:00:11
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 |
||
Časová prodleva: 5 let
|
0