(AJAX/JS, JSON/PHP) Kezdek megbolondulni lassan, Hogyan kell ezt megcsinálni?
Amit szeretnék:
Van egy input:
1. Ír bele valaki valamit
2. Meghív egy PHPt, lekérdezi, hogy foglalt-e a beírt név.
3. Értesít
Már szinte mindent megpróbáltam, de sehogy se jön össze.
JS:
$('#account').bind("change", function() {
var check_input = document.getElementById('account').value;
$.ajax({
type: "POST",
url: "index.php",
data: { acce: check_input },
dataType: "json",
success: function (response) {
if(response.status == "success") {
alert('ok');
} else if(response.status == "error") {
alert('nemok');
}
}
})
});
feldolgozó PHP:
<?PHP
if( isset($_POST['acce']) ){
$account = mysql_real_escape_string($_POST['acce']);
if (preg_match("/^[a-zA-Z0-9]*$/i",$account)) {
$check_account = "SELECT id FROM data.data WHERE name='$account' ";
$check_accountQ = mysql_query($check_account,$sqlServ);
$check_num = mysql_num_rows($check_accountQ);
if ($check_num == 0) {
echo json_encode(array('status' => 'success'));
}else{
echo json_encode(array('status' => 'error'));
}
}
}
?>
Index.php:
- Mysql kapcsolat.
- Feldolgozó PHP: <?PHP include('./page/check.php'); ?>
- [link] <?PHP require("./inc/jsonwrapper.php"); ?>
- Az input
- JS libek
Az a probléma, hogy tökéletesen működik, ha az sql parancs UPDATE, DE SELECTel sehogy sem tudom megoldani.
Ha a feldolgozó PHPba, beírom, hogy echo '<script>alert('húzdmeg a f..om')</script>';, akkor sem történik semmi... Ezért próbáltam meg json-al, de semmi változás.
Valaki tudna valami ötletet adni? Kezd nagyon bosszantani.
UI:
Az "if(response.status == "success")" résznél először ===-t próbáltam, aztán ==-t ,de semmi változás.
off:
Sztem töltsd fel vhova a forráskódot és linkeld be, úgy látható a tab.
Pff.. nekiálltam, de már én sem merem megmérni a vérnyomásom:D
Bocsi:(
Az ajax lekérdezést egészítsd ki egy error kóddal, mert így nem látod mi történik a feldolgozó php-ben:
$('#account').bind("change", function() {
var check_input = $('#account').val(); // ha már jquery...
$.ajax({
type: "POST",
url: "index.php",
data: { acce: check_input },
dataType: "json",
success: function (response) {
if(response.status == "success") {
alert('ok');
} else if(response.status == "error") {
alert('nemok');
}
},
error: function (jqXHR, textStatus, errorThrown) {
console.log("Hiba történt: " + testStatus);
console.log("Rendszerválasz: " + jqXHR.responseText);
}
})
});
valamint javaslom, hogy egy külön feldolgozó fájlt használj az adatok feldolgozására (ne az index.php-t), mert ott meghívhatsz olyan libeket, változókat, amire itt nem lesz szükséged, csak a memóriát terhelik feleslegesen. Más szóval: a feldolgozáshoz célszerszámot használj, ne a komplett oldaladat töltsd újra.
Ha egy egszerű válaszról van szó, akkor nem kell a json-t sem túlbonyolítani, elég egy
echo json_encode(array(1)); / echo json_encode(array(0));
lekérdezéshez meg response == 1 ...
Ha hiba van, redukáld a kódot, próbálj kimenetre küldeni minél több adatot, amiből kitalálod hol vérzett el a kód.
Egyébként ilyesmihez egy spec jsonwrapper lib-re semmi szükség, nyugodtan kukázhatod, csak a memóriát zabálja.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!