Windev : Envoyer des variables Windev à une page php avec l'ActiveX "Shell.Explorer" et la méthode HTML POST.
Voici une procédure simple pour envoyer les valeurs de champs de saisie Windev vers une page php affichée dans un champ ActiveX "Shell.Explorer" avec la méthode HTTP POST.
La méthode POST permet d'envoyer plus de 2 mo de caractères contre 256 avec la méthode GET (passage de paramètres dans l'Url).
La procédure consiste à générer un formulaire html dans un fichier local qui sera ensuite soumis au script php destinataire.
Ma fenêtre Windev contient 3 champs de saisie : Sai_Nom, Sai_Prenom et Sai_Age et un champ ActiveX AX_IE.
Code:
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
|
oActiveX est un objet OLE dynamique
sActiveX est une chaîne
sActiveX = AX_IE..Nom
{sActiveX,indChamp} = "Shell.Explorer"
// Instanciation OK ?
oActiveX = {sActiveX,indChamp}
SI oActiveX = Null ALORS
FinProgramme("L'ActiveX Internet Explorer n'a pas pu être chargé.")
FIN
//Générer le HTML du formulaire
sUrl est une chaîne
sFiHTML est une chaîne
sUrl = "http://MaPage.php"
sFiHTML = GenereHTML(sUrl,Faux)
oActiveX>>Navigate(sFiHTML)
Multitâche(-10)
TANTQUE oActiveX>>Busy
Multitâche(-10)
FIN
oForm est un objet OLE dynamique
oForm = oActiveX>>Document>>getElementById("myform")
SI oForm <> Null
QUAND EXCEPTION DANS
RENVOYER oForm>>Submit
FAIRE
Erreur(ExceptionInfo())
RENVOYER Faux
FIN
FIN |
Procédure GenereHTML :
Code:
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
|
PROCEDURE GenereHTML(_sFormAction est une chaîne,_bVisible est un booléen=Vrai)
LOCAL
sFiHTML est une chaîne
sHTML est une chaîne
sDisplay est une chaîne
sFiHTML = ComplèteRep(fRepExe())+"Formulaire.html"
SI _bVisible ALORS
sDisplay = "display:block"
SINON
sDisplay = "display:none"
FIN
sHTML += "<html>"
sHTML += "<head>"
sHTML += "<title>"
sHTML += "Formulaire"
sHTML += "</title>"
sHTML += "</head>"
sHTML += "<body>"
sHTML += "<div id='divForm' style='"+sDisplay+"'>"
sHTML += "<form method='post' id='myform' action='"+_sFormAction+"' >"
sHtml += AddInput(Sai_Nom..Nom,Sai_Nom..Valeur)
sHTML += AddInput(Sai_Prenom..Nom,Sai_Prenom..Valeur)
sHTML += AddInput(Sai_Age..Nom,Sai_Age..Valeur)
sHTML += "<input type='submit' value='Valider' />"
sHTML += "</form>"
sHTML += "</div>"
sHTML += "</body>"
sHTML += "</html>"
fSauveTexte(sFiHTML,shtml)
RENVOYER sFiHTML |
Procédure AddInput :
Code:
1 2 3 4
|
PROCEDURE AddInput(_sName est une chaîne,_sValue est une chaîne)
RENVOYER "<p><input type='text' name='"+_sName+"' value='"+_sValue+"' /></p>" |
Bonne prog :ccool: