Page 1 sur 1

Appeler script en fonction d'un champs formulaire

Posté : 12 déc. 2015, 18:45
par klorane
Bonjour Forum,

j'ai un champs formulaire liste déroulante appelé : destinataire

Valeurs du champs exemple :

[email protected]

[email protected]

ce formulaire quand il est validé appel un script php qui envoie les champs à la personne concernée par mail.

Dans ce script php je voudrais appelé un autre script php en fonction du destinataire selectionné.

Exemple :

Si destinataire = [email protected] appeler script php : essai1.php

Si destinataire = [email protected] appeler script php : essai2.php

il doit s'agir pour ça de la fonction : require avec un truc genre :

if ($destinataire = [email protected]) require "test1.php";

j ai testé pour bricoler mais ça ne fonctionne pas.

si quelqu'un à une idée....

Merci

Klorane

Re: Appeler script en fonction d'un champs formulaire

Posté : 12 déc. 2015, 19:29
par Ascla
Normalement une simple condition suffit.
Pour l'appel, tu peux aussi utiliser include qui procède de la même façon (différence en cas d'erreur)
http://php.net/manual/fr/function.include.php

Je pense que le problème vient de ta boucle. Peut-on avoir un aperçu de ton code ?

Re: Appeler script en fonction d'un champs formulaire

Posté : 12 déc. 2015, 19:59
par klorane
Merci Ascla,

J'ai essayé ceci :

if ($destinataire="[email protected]") require "test1.php";

if ($destinataire="[email protected]") require "test2.php";

je teste avec [email protected] il execute les 2 fichiers test1.php et test2.php

Re: Appeler script en fonction d'un champs formulaire

Posté : 12 déc. 2015, 20:13
par or 1
== et non = pour comparer

Re: Appeler script en fonction d'un champs formulaire

Posté : 12 déc. 2015, 23:15
par klorane
si je mets d autres adresses mail il execute quand meme...alors que rien devrait se faire.

exemple :
if ($destinataire="[email protected]") require "test1.php";
if ($destinataire="[email protected]") require "test2.php";

test1 et test2 sont executés c'est donc que If fait n importe quoi car ces adresses mails n 'existent pas.

j 'ai essayé avec == avec ça il n y a aucune execution

exemple :
if ($destinataire=="[email protected]") require "test2.php";

J ai testé autre chose. en pensant que c'était une histoire avec la liste déroulante.

$val = '1';

if ($val = 1) include 'test1.php';
if ($val = 2) include 'test2.php';

il m'execute là aussi test1 et test2...pourtant c'est le baba

Re: Appeler script en fonction d'un champs formulaire

Posté : 13 déc. 2015, 01:50
par klorane
j'ai également testé ceci pour faire des essais:

<?php

if($nom = 1)
{
echo "Valeur 1";
}
else
{
echo "Valeur2";
}
?>

Je complète mon formulaire et j 'appelle le script en l'envoyant.

Quelque soit la valeur que j'indique dans le champs "nom" du formulaire 1,2,3......
j'ai le texte : valeur 1
Cela signifie que la valeur du champs "nom" n'est pas prise en compte.
j ai aussi testé ça :

$nom = $_POST['nom']

if($nom = 1)
{
echo "Valeur 1";
}
else
{
echo "Valeur2";
}

là j 'ai erreur :

Parse error: syntax error, unexpected 'if' (T_IF) in line 3 soit : if($nom = 1)

Re: Appeler script en fonction d'un champs formulaire

Posté : 13 déc. 2015, 03:40
par Ascla
Dans une condition, il faut toujours utiliser les 2 signes = pour une comparaison : if ($a == $b)
Le simple signe = change la valeur d'une variable.
Du coup, une condition if ($a = $b) sera TOUJOURS vraie, car à partir du moment ou l'assignation est faite, la condition reçoit vrai et sera donc respectée.
Pour ton problème, la solution serait donc :
if ($destinataire == "[email protected]")
{
     require "test2.php";
}
Pour ton autre exemple :
$val = 1;

if ($val == 1) 
{
    include 'test1.php';
}
if ($val == 2)
{
    include 'test2.php';
}

Re: [RESOLU] Appeler script en fonction d'un champs formulaire

Posté : 13 déc. 2015, 04:02
par klorane
Merci Ascla.

effectivement il y avait ce problème là et aussi la récupération de la valeur du champs que je n avais pas mise : $destinataire = $_POST['destinataire'];

Encore merci.

Klorane