• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

button disabled

Status
Für weitere Antworten geschlossen.

digga

Mitglied
Hallo!!
Ich habe hier einen PHP-Code:
PHP:
<?php
if($e_user_name == "admin")
{
echo " <tr>
<td width="200">&nbsp;</td>
<td><input disabled="submit" name="absenden" value="Ändern"></input></td>
</tr> ";
}
else
{
echo " <tr>
<td width="200">&nbsp;</td>
<td><input type="submit" name="absenden" value="Ändern"></input></td>
</tr> ";
}
?>
Da ich aus bestimmten Gründen kein PHP einsetzen kann, muss ich wohl oder übel Javascript dafür verwenden... Wie mache ich das, dass dann die gleichen bedingungen sind wie in meinem PHP-Code also auch:

wenn user == "admin
dann button nicht disabled???????
 
Hm? Kapier ich nicht.
Du hast doch einen Thread erstellt, in dem du mehr PHP lernen willst.

Also war nur ne Frage ;)

<sry>Wegen Spam</sry>
(Fragen sich vielleicht auch andere).


MfG, matibaski
 
@matibaski: Ich brauche das mit javascript, weil es in eine template datei rein soll, welche kein php erlaubt!!
weiss denn jemand wie das geht?
 
Wenn in der Templatesyntax kein Zugriff auf Variablen erlaubt ist, kannst du es vergessen. Du kannst per Javascript nicht auf Admin überprüfen, da das Serverseitig ist. Falls du aber sonst php verwendest, nimm doch einfach Ajax. Damit kannst du ganz einfach auf Admin überprüfen.

greez,

Web_spider
 
Also mit Ajax, kannst du Anfragen zum Server schicken. Du kannst Beispielweise eine Anfrage an eine php Datei schicken, welche ermittelt, ob der User ein Admin ist und im Erfolgsfalle "Ja" und sonst "Nein" zurückgibt. Das Serverfeedback wird dann in eine normale Javascript Variable gespeichert. So kannst du dann ganzh normal weiter abfragen.

greez,

Web_spider :D

Ps: Falls du gerne nen Script Ansatz möchtest, schreib einfach in diesen Treath.
 
So na dann mal los :)

Okey also als erstes nimm ich die Template Datei und rufe beim laden der Datei eine Funktion auf, die die Rechte setzen soll.

Code:
...
<title>Dein Template</title>

<script type="text/javascript" src="ajax.js"></script>

</head>
<body onload="setze_rechte()">

<div>
<input type="submit" name="edit" id="edit" value="edit" disabled="disabled" />
</div>
...
Wie du siehst binde ich die Datei ajax.js ein. In der ist die Funktion setze_rechte() gespeichert.

Code:
function setze_rechte()
{
    var ServerAnfrage;
    var ServerAntwort;
    
/* ==================== Erstelle ServerAnfrage Objekt ==================== */
    if(window.XMLHttpRequest)
    {
        ServerAnfrage             = new XMLHttpRequest();
    }
    else if(window.ActiveXObject)
    {
        try
        {
            ServerAnfrage         = new ActiveXObject("Msxml.XMLHTTP");
        }
        catch(e)
        {
            try
            {
                ServerAnfrage     = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e)
            {
                ServerAnfrage     = false;
            }
        }
    }
    else
    {
        ServerAnfrage            = false;
    }    
    
/* ==================== Falls keine Objekt erstellt wurden konnte ==================== */
    if(!ServerAnfrage)
    {
        alert("Leider unterstuetzt ihr Browser kein Ajax");
    }
    else
    {
/* ==================== ServerAnfrage senden und Antwort verarbeiten ==================== */
        
        ServerAnfrage.open("GET", "diePhpDatei.php", true);
        
        ServerAnfrage.onreadystatechange = function()
        {
            if(ServerAnfrage.readyState == 4)
            {
                if(ServerAnfrage.status == 200)
                {
                    if(ServerAnfrage.responseText == "IS_ADMIN")
                    {
                        document.getElementById("edit").disabled = "";
                    }
                    else
                    {
                        document.getElementById("edit").disabled = "disabled";
                    }
                }
                else
                {
                    alert("Leider konnten ihre Rechte nicht ermittelt werden");
                }
            }
        }
        
        ServerAnfrage.send(null);
    }
}
Ich überprüfe als erstes ob der Browser XMLHttpRequests unterstützt, womit ich Anfragen senden kann. Die try - catch Blöcke, die darauf folgen, sind für andere Browser wie den Internet Explorer.

Wenn alles gut gegangen ist, hast du nun in der Variable ServerAnfrage ein Requestobjekt.

Als nächstes eröffne ich eine Anfrage an die Datei "meinPhpDatei.php", in welcher überprüft werden soll, ob der User ein Admin ist. Übergeben werden
  1. Der Name der Datei
  2. Die Art der Anfrage, möglich sind "GET", "POST", "HEAD".
  3. (Optional) Hier wären auch noch Variablen möglich, die ich sende via Post,
  4. (Optional) Hier gebe ich nur an, dass das Script nicht unterbrochen werden soll.
Jetzt definiere ich eine Funktion, die ausgeführt werden soll, wenn der Server eine Anfrage schickt.

Ich Überprüfe die Antwort auf den Fortschritt mit ServerAnfrage.readyState, dort kann der Server nur 5 Antworten schicken:
  • 0: uninitialized: Anfrage noch net abgeschickt.
  • 1: loading: Der Server läd.
  • 2: loaded: Der Server hat fertig geladen.
  • 3: interactive: Die ersten Dateien sind geparst, und es kann schon zugegriffen werden.
  • 4: complete: alles Fertig.
Anschließen überprüfe ich noch den Status. Dieser Wert kann der Gleiche sein, wie die du schon kennst:

Beispiele:
  • 200 = Alles Okey
  • 404 = Nicht gefunden.
  • 500 = Server Error
  • 401 = Zugriff verwährt
  • ...
Wenn alles Korrekt abgewickelt wurde, kann ich die Antwort des Servers mit ServerAnfrage.responseText abrufen. In dem Fall gibt das Script entweder IS_ADMIN zurück oder IS_NOT_ADMIN.

Jetzt fehlt nur noch "diePhpDatei.php", welche testen soll, ob der User ein Admin ist.

PHP:
<?php
...
if($e_user_name == "admin")
{
    echo "IS_ADMIN";
}
else
{
    echo "IS_NOT_ADMIN";
}
?>
...
Hier musst du gucken, wie du auf den ADmin überprüfst.

Als letzes haste hier noch 2 Tests:Ich hoffe es hilft dir, positive Bewertungen sind wilkommen ;)

greez,

Web_spider
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Zurück
Oben