2016-04-26 5 views
0

Ich versuche, eine PHP-Webseite mit dem folgenden Verhalten zu erstellen:PHP-Code, um ein Dokumentelement zu ändern

1- Ein Client Zugriff auf die Webseite (die einige Schaltflächen enthält);

2- Wenn die Webseite geladen ist, öffnet das PHP-Skript eine Datei, die auf dem Server gespeichert ist und aktiviert/deaktiviert auf der Basis der Informationen in dieser Datei einige der Schaltflächen, so dass der Klient die Webseite mit sehen kann richtige Tasten aktiviert oder deaktiviert.

Um Tasten zu aktivieren/deaktivieren, weiß ich, dass ich Javascript verwenden kann, während ich die Datei auf dem Server lesen kann, verwende ich PHP wie oben erwähnt.

Wie lege ich die zwei Dinge zusammen? Oder soll ich eine PHP-Code entspricht die folgende Javascript Linie:

<script>document.getElementById("button1").disabled = true;</script> 

Zuerst dachte ich, dass diese Zeile in dem PHP-Code eingefügt wurde die Lösung, aber dann fand ich heraus, dass dies nicht für offensichtlich arbeiten kann Gründe dafür.

Danke für die Hilfe!

Ist es korrekt, wenn ich die folgende JavaScript-Funktion im Kopfbereich meiner Webseite hinzufüge?

<script> 
function enableButtons() { 
<?php 
if($state=="state1") { 
    echo 'document.getElementById("button1").disabled = true;'; 
} 
else if($state=="state2") { 
    echo 'document.getElementById("button2").disabled = true;'; 
} 
?> 
} 
</script> 

ich die enableButtons() aufrufen, Funktion, wenn unter Verwendung

<body onload="enableButtons()"> 

Der PHP-Code oben ist nur ein Beispiel Laden der Seite, die Anzahl der Zustände und Tasten ist höher, deshalb möchte ich um diese Lösung zu verwenden.

+1

Sie können Ajax verwenden, um PHP-Skripte von Javascript aufzurufen. –

+1

Offenbar erstellen Sie die Seite auf dem Server, auf dem sich die Datei befindet, und Sie möchten die Schaltflächen deaktivieren. Wenn dies der Fall ist, fügen Sie beim Drucken des HTML für die Schaltfläche das Attribut hinzu, um es zu deaktivieren. Keine Notwendigkeit für JavaScript überhaupt. – kainaw

+0

Sie können PHP verwenden, um das Markup zu ändern, bevor es an den Client gesendet wird.Und erklären Sie bitte die Art der 'Informationen in dieser Datei' und ein Beispiel für das Markup der Schaltfläche. – frz3993

Antwort

1

Das Übliche ist, dass php die Einstellungsdatei liest und das Attribut "disabled" auf den Schaltflächen ausgibt, bevor die Ausgabe an den Benutzerbrowser gesendet wird. Sie können mehr Informationen über das Attribut hier erhalten here. Sie benötigen kein Javascript.

Tun Sie etwas wie folgt aus:

<button type="button" <?php if($state === 'state1') echo 'disabled'; ?>>Button text</button> 
+0

Danke! Schön! Ich habe meinen ursprünglichen Post bearbeitet, wenn Sie einen Blick darauf werfen können. – user2028271

+0

Sie verwenden Javascript, und das sollten Sie nicht tun. Was passiert, wenn der Benutzerbrowser JavaScript deaktiviert hat? Wie auch immer, wenn das Ihre einzige Option ist, sieht es in Ordnung aus. Ich habe meine Antwort mit der Bedingung aktualisiert, die Sie haben – wavvves

+0

Ich habe meinen Code neu angeordnet, um nur HTML zu verwenden, Ihrem Vorschlag folgend, und ich sehe, dass Ihre Lösung besser und sauberer ist. Danke. – user2028271

0

Normalerweise senden Sie an den Client die Tasten bereits deaktiviert und verwenden js auf jeden Fall zu reagieren, die, nach dem Senden der Seite geschieht wie ein Kombinationsfeld Wert Auswahl .. Sie den Code weglassen kann, einen if Satz, oder Verstecke sie mit CSS. Der erste Ansatz ist bevorzugt.

0

Script

<script> 
    function isValid(f){ 
    if(f.test.value==''){ 
     alert('please enter name'); 
     return false; 
    }else{ 
     $(".bbutton").html("Processing please wait"); 
    return true; 
    } 
    } 
</script> 

HTML

<form method="post" onsubmit="return isValid(this);"> 
    <input type="hidden" name="te"> 
    <input type="text" name="test"> 
    <div class="bbutton"> 
     <input type="submit" value="send"> 
    </div> 
</form> 

Wenn Sie das Formular abschicken, dann wird es automatisch den Absenden verbergen Taste erneut drücken zu vermeiden und wieder, und Sie können es auf andere Seite umleiten. Vielleicht ist diese Idee hilfreich.

Verwandte Themen