Controle door php script op achtergrond, uitbereiding probleem!
Ik heb momenteel een script met als functie: Het controleren of de ingevoerde username al bestaat in de database.
Een simpel scriptje die ontzettend goed werkt.
Doormiddel van een text field en een submit button checkt ie op de achtergrond of de username al bestaat en geeft een antwoord terug. Zonder de pagina te refreshen.
( CODE HELEMAAL ONDER AAN DE PAGINA )
Wat ik nu wil is ditzelfde script in een ander php scriptje gebruiken. Ik heb namelijk eenzelfde soort functie nodig, dan alleen voor een andere "check".
Het bestaat ditmaal weer uit één field. In dit field moet iets ingevuld worden wat in de database staat. Dat klinkt raar maar het is eigenlijk een soort vraag op een antwoord. Dus in de database staat: "Dit is het antwoord" .Hij moet nu dus niet checken of de username al bestaat maar of het antwoord hetzelfde is dat als in de database staat. Oftewel: "Dit is het antwoord"
Nu neem ik aan dat dit een kwestie is om hetzelfde script te gebruiken en ipv username "antwoord" te gebruiken in een andere mysql query.
Nu kom ik daar wel uit heb ik het gevoel, maar het gaat mij om de button en het textfield. Dit is namelijk gemaakt voor één textfield. In dit geval wil ik een ID meesturen voor een record in de database waar het juiste antwoord in zou moeten staan.
Ik heb dus geen idee hoe ik met dit script een extra hidden field meestuur.
Ik heb namelijk een "WHERE id =" nodig. Het juiste ID wil ik dus meesturen in een hidden field.
Als iemand me daarmee kan helpen stel ik dat ZEER op prijs!
Allemaal alvast bedankt!
SCRIPT:
TEXTFIELD EN "CHECK"BUTTON CODE
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
<input name="awnser" type="text" id="awnser" class="textinput">
<input name="btnAvailable" type="button" id="btnAvailable" onclick='$("#checkid").html("Please wait...");
$.get("checkawnser.php",{ cmd: "check", user: $("#awnser").val() } ,function(data){ $("#checkid").html(data); });
'value="Check Awnser">
<span style="color:red; font: bold 12px verdana; " id="checkid" ></span>
?>
<input name="awnser" type="text" id="awnser" class="textinput">
<input name="btnAvailable" type="button" id="btnAvailable" onclick='$("#checkid").html("Please wait...");
$.get("checkawnser.php",{ cmd: "check", user: $("#awnser").val() } ,function(data){ $("#checkid").html(data); });
'value="Check Awnser">
<span style="color:red; font: bold 12px verdana; " id="checkid" ></span>
?>
checkawnser.php CODE
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
include 'dbc.php';
foreach($_GET as $key => $value) {
$get[$key] = filter($value);
}
$user = mysql_real_escape_string($get['user']);
if(isset($get['cmd']) && $get['cmd'] == 'check') {
if(!isUserID($user)) {
echo "Invalid User ID";
exit();
}
$rs_duplicate = mysql_query("select count(*) as total from users where user_name='$user' ") or die(mysql_error());
list($total) = mysql_fetch_row($rs_duplicate);
if ($total > 0)
{
echo "Not Available";
} else {
echo "Available";
}
}
?>
include 'dbc.php';
foreach($_GET as $key => $value) {
$get[$key] = filter($value);
}
$user = mysql_real_escape_string($get['user']);
if(isset($get['cmd']) && $get['cmd'] == 'check') {
if(!isUserID($user)) {
echo "Invalid User ID";
exit();
}
$rs_duplicate = mysql_query("select count(*) as total from users where user_name='$user' ") or die(mysql_error());
list($total) = mysql_fetch_row($rs_duplicate);
if ($total > 0)
{
echo "Not Available";
} else {
echo "Available";
}
}
?>
Gewijzigd op 19/06/2012 15:43:42 door Allard Keij
Antwoord in het Engels is overigens answer ;-)
+ Fail @ checkanswer.php ..
Ik ga het nu direct proberen. Ook al zou het niet kunnen is de fail al binnen.. Dat ik daar niet aan gedacht heb zeg..
Bedankt! Ik post zo even of het gelukt is.
Toevoeging op 19/06/2012 17:44:30:
Dat was inderdaad de truc!
Bedankt. En stom van me dat ik er niet aan dacht.
Nu wil ik alleen het textfield op readonly zetten na het juiste antwoord of zelfs helemaal weg. Het moet gewoon zijn juist is juist en zodra dat is moet het gedisabled worden.
Enige tips hiervoor?
Bedankt!
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$("input#answer).change(function(
if(checkanswer.php == $("input$answer").value)
{
$("submitknop").attr("disabled", "");
}
));
if(checkanswer.php == $("input$answer").value)
{
$("submitknop").attr("disabled", "");
}
));
Even los uit het hoofd. Ik heb zoiets ook wel gemaakt... zal even kijken of die code nog heb.
Toevoeging op 19/06/2012 18:32:23:
Gevonden:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// vooraf ergens
$('#verzendknop').attr('disabled', 'disabled');
// naam en emailadres verplicht
$("#verzendknop").click(function ()
{
if( $("#gegevens_naam").val().length === 0 )
{
$('#foutmelding').css('display', 'inline');
$('#gegevens_naam').css('border', '1px solid red');
$('#verzendknop').attr('disabled', 'disabled');
}
else
{
$('#gegevens_naam').prop('style', null);
}
if( $("#gegevens_emailadres").val().length === 0 )
{
$('#foutmelding').css('display', 'inline');
$('#gegevens_emailadres').css('border', '1px solid red');
$('#verzendknop').attr('disabled', 'disabled');
}
else
{
$('#gegevens_emailadres').prop('style', null);
}
if( $("#gegevens_adres").val().length === 0 )
{
$('#foutmelding').css('display', 'inline');
$('#gegevens_adres').css('border', '1px solid red');
$('#verzendknop').attr('disabled', 'disabled');
}
else
{
$('#gegevens_adres').prop('style', null);
}
});
// disabled knop weer vrijgeven bij naam en emailadres
$("#gegevens_naam").focus(function () { $('#verzendknop').prop('disabled', null); $('#foutmelding').css('display', 'none');$('#gegevens_naam').prop('style', null); });
$("#gegevens_adres").focus(function () { $('#verzendknop').prop('disabled', null); $('#foutmelding').css('display', 'none'); $('#gegevens_adres').prop('style', null); });
$("#gegevens_emailadres").focus(function () { $('#verzendknop').prop('disabled', null); $('#foutmelding').css('display', 'none'); $('#gegevens_emailadres').prop('style', null); });
$('#verzendknop').attr('disabled', 'disabled');
// naam en emailadres verplicht
$("#verzendknop").click(function ()
{
if( $("#gegevens_naam").val().length === 0 )
{
$('#foutmelding').css('display', 'inline');
$('#gegevens_naam').css('border', '1px solid red');
$('#verzendknop').attr('disabled', 'disabled');
}
else
{
$('#gegevens_naam').prop('style', null);
}
if( $("#gegevens_emailadres").val().length === 0 )
{
$('#foutmelding').css('display', 'inline');
$('#gegevens_emailadres').css('border', '1px solid red');
$('#verzendknop').attr('disabled', 'disabled');
}
else
{
$('#gegevens_emailadres').prop('style', null);
}
if( $("#gegevens_adres").val().length === 0 )
{
$('#foutmelding').css('display', 'inline');
$('#gegevens_adres').css('border', '1px solid red');
$('#verzendknop').attr('disabled', 'disabled');
}
else
{
$('#gegevens_adres').prop('style', null);
}
});
// disabled knop weer vrijgeven bij naam en emailadres
$("#gegevens_naam").focus(function () { $('#verzendknop').prop('disabled', null); $('#foutmelding').css('display', 'none');$('#gegevens_naam').prop('style', null); });
$("#gegevens_adres").focus(function () { $('#verzendknop').prop('disabled', null); $('#foutmelding').css('display', 'none'); $('#gegevens_adres').prop('style', null); });
$("#gegevens_emailadres").focus(function () { $('#verzendknop').prop('disabled', null); $('#foutmelding').css('display', 'none'); $('#gegevens_emailadres').prop('style', null); });