[php] appel de fonction

Fermé
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 - 20 avril 2008 à 18:24
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 - 25 avril 2008 à 13:21
Bonjour alors j'ai plusieurs question à vous poser.

- j'aurais aimé savoir si il était possible d'augmenter la taille d'un bouton checkbox. Bon sinon je prendrais deux images.

- j'ai un petit souci pour l'appel d'une fonction. Alors je veut créer une sorte de calendrier. Donc au debut on voit la date du jour. puis on aurait une petite flèche(image) qui nous permettrais d'incrémenter nos jours.
donc ça donne ça

<?php
$date = date("d-m-Y");
echo "
<table>
<tr>
<td><INPUT type=\"button\" name=\"date\" value=$date style=\"height:60px; width:200px;\" /></td>
<td><IMG SRC=\"Fleche3.jpg\" /></td>
</tr></table>";
?>


et la fonction est:

function aug_jour(){
$today = mktime(0,0,0, date("m"),date("d"),date("y"));//nombre de seconde depuis le 1er janvier 1970 à aujourd hui 00h00.
$today += (3600 * 24 * 1 ); // 1h * 24 = 1 jour * 1 = 1 jours
$demain = date("d-m-y ", $today);

$ladate = date("d m y ", $today);
echo" $ladate";
}

donc lors du clique je voudrais appeler la fonction aug_jour qui se trouve dans le même fichier mais je ne sait pas comment faire


On pourrais pas faire un truc du genre si clique alors jour++ enfin un peu comme le c++ (lol)

Merci bcp de votre aide

15 réponses

R4f Messages postés 441 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 5 mai 2008 62
20 avril 2008 à 19:46
- j'aurais aimé savoir si il était possible d'augmenter la taille d'un bouton checkbox. Bon sinon je prendrais deux images.

Oui, on peut utiliser des feuilles de style pour modifier l'apparence des checkboxes :
https://www.456bereastreet.com/lab/styling-form-controls-revisited/checkbox/


Bon, pour le reste, c'est pas très clair.

La date, pourquoi veux-tu la modifier ?
- pour afficher la date + 1 jours
- pour modifier le contenu d'un fichier
- pour modifier une base de données
- autre chose d'encore plus tordu ? ;-)

Es-tu sûr que ça doive être fait du côté du serveur (par PHP) et non pas en Javascript (du côté du client/navigateur) ?

Et puis ton code, sans vouloir te manquer de respect, il est pas très jojo.
function aug_jour($nb_jours=1){
	$today = time() + (3600 * 24 * $nb_jours ); //  $nb_jours jours
	return date("d m y ", $today);
}

echo aug_jour();
 



Et puis au début :
<?php
$date = date("d-m-Y");
?>
<table>
	<tr>
		<td><input type="button" name="date" value="<?=$date ?>" style="height:60px; width:200px;" /></td>
		<td><img src="Fleche3.jpg" /></td>
	</tr>
</table>


Ca va mieux comme ça, non ?


Raph
0
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 65
21 avril 2008 à 08:59
bonjour et merci de ton aide.
Enfaite voila je veux juste augmenter la date d'un jour lorsque je clique sur l'image. Donc enfaite je voit pas trop comment faire.
Merci d'avance
0
R4f Messages postés 441 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 5 mai 2008 62
21 avril 2008 à 10:32
C'est pas plus clair «augmenter la date d'un jour», ça veut dire :
- avancer dans le temps ? (donc inventer une machine à voyager dans le temps ?)
- afficher la date du lendemain
- passer en paramètre la date du lendemain à un script

Là où c'est pas clair, c'est : ok pour augmenter la date d'un jour, mais ensuite on en fait quoi ?
Si j'ai une variable qui vaut 1 dans un script, l'augmenter de 1, ça ne sert à rien tant que je n'ai pas utilisé cette valeur :
<?php $i = 1; $i = $i + 1 ?>


J'ai incrémenté $i de 1 et ensuite mon programme s'est arrêté sans que j'ai rien fait de la nouvelle valeur de $i. Donc ça n'a servi à rien !

Et toi, tu veux en faire quoi de ta date du lendemain ?

Raph
0
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 65
21 avril 2008 à 09:41
et a propos du checkbox ça ne marche pas.
J'ai fait:

<html>
<head>
<style type="text/css">

#el08 {
width:4em;
height:4em;
}
</style>
</head>
<body>

<input type="checkbox" id="el08">
<label for="el08"></label>
</body>
</html>

mais ça reste tout petit
Merci de votre aide
0
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 65
21 avril 2008 à 11:11
ben enfaite j'ai décidé de le faire en javascript il semblerait que ce soit plus simple.
Ma date apres je vais la stocker dans une table temporaire.

donc voila j'ai fait ceci:

<script type="text/javascript">
function calcul(){ //oblige a cliquer dans le area pour pouvoir ecrire
dateactuelle = document.getElementById("date_div").value;

var annee=dateactuelle.getFullYear();

var mois=dateactuelle.getMonth();
var jour=dateactuelle.getDate()+1;
var date=annee+"-"+mois+"-"+jour;
document.getElementById("date_div").innerHTML="<input type=\"text\" name=\"login\" align=\"middle\" id=\"loginField\" value='"+date+"' >";

}
</script>

<?php
$date = date("d-m-Y");

echo "
<table>
<tr>

<td><div id='date_div'><input type=\"text\" name=\"login\" align=\"middle\" id=\"loginField\" value='".$date."' ></div></td>
<td onclick=\"calcul()\"><img src=\"images/Fleche3.jpg\"/ width=\"20\" height=\"20\"></td>
</tr></table>";

le probleme c'est que je ne peut pas récupérer mon annee mois et jour alors je voit pas trop pourquoi parce que ce que je récupère avec document.getElementById("date_div").value; est bien une date non?

Merci de votre aide
0
R4f Messages postés 441 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 5 mai 2008 62
21 avril 2008 à 12:04
Maintenant je crois que je commence à comprendre.

En effet, il faut le faire avec du Javascript, puisque c'est du côté du client que ça se fait...

<script type="text/javascript">


/**
*
*  Javascript sprintf
*  http://www.webtoolkit.info/
*
*
**/

sprintfWrapper = {

    init : function () {

        if (typeof arguments == 'undefined') { return null; }
        if (arguments.length < 1) { return null; }
        if (typeof arguments[0] != 'string') { return null; }
        if (typeof RegExp == 'undefined') { return null; }

        var string = arguments[0];
        var exp = new RegExp(/(%([%]|(\-)?(\+|\x20)?(0)?(\d+)?(\.(\d)?)?([bcdfosxX])))/g);
        var matches = new Array();
        var strings = new Array();
        var convCount = 0;
        var stringPosStart = 0;
        var stringPosEnd = 0;
        var matchPosEnd = 0;
        var newString = '';
        var match = null;

	while (match = exp.exec(string)) {
		if (match[9]) { convCount += 1; }

		stringPosStart = matchPosEnd;
		stringPosEnd = exp.lastIndex - match[0].length;
		strings[strings.length] = string.substring(stringPosStart, stringPosEnd);

		matchPosEnd = exp.lastIndex;
		matches[matches.length] = {
match: match[0],
       left: match[3] ? true : false,
       sign: match[4] || '',
       pad: match[5] || ' ',
       min: match[6] || 0,
       precision: match[8],
       code: match[9] || '%',
       negative: parseInt(arguments[convCount]) < 0 ? true : false,
       argument: String(arguments[convCount])
		};
	}
	strings[strings.length] = string.substring(matchPosEnd);

        if (matches.length == 0) { return string; }
        if ((arguments.length - 1) < convCount) { return null; }

        var code = null;
        var match = null;
        var i = null;

        for (i=0; i<matches.length; i++) {

            if (matches[i].code == '%') { substitution = '%' }
            else if (matches[i].code == 'b') {
                matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(2));
                substitution = sprintfWrapper.convert(matches[i], true);
            }
            else if (matches[i].code == 'c') {
                matches[i].argument = String(String.fromCharCode(parseInt(Math.abs(parseInt(matches[i].argument)))));
                substitution = sprintfWrapper.convert(matches[i], true);
            }
            else if (matches[i].code == 'd') {
                matches[i].argument = String(Math.abs(parseInt(matches[i].argument)));
                substitution = sprintfWrapper.convert(matches[i]);
            }
            else if (matches[i].code == 'f') {
                matches[i].argument = String(Math.abs(parseFloat(matches[i].argument)).toFixed(matches[i].precision ? matches[i].precision : 6));
                substitution = sprintfWrapper.convert(matches[i]);
            }
            else if (matches[i].code == 'o') {
                matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(8));
                substitution = sprintfWrapper.convert(matches[i]);
            }
            else if (matches[i].code == 's') {
                matches[i].argument = matches[i].argument.substring(0, matches[i].precision ? matches[i].precision : matches[i].argument.length)
                substitution = sprintfWrapper.convert(matches[i], true);
            }
            else if (matches[i].code == 'x') {
                matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(16));
                substitution = sprintfWrapper.convert(matches[i]);
            }
            else if (matches[i].code == 'X') {
                matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(16));
                substitution = sprintfWrapper.convert(matches[i]).toUpperCase();
            }
            else {
                substitution = matches[i].match;
            }

            newString += strings[i];
            newString += substitution;

        }
        newString += strings[i];

        return newString;

    },

    convert : function(match, nosign){
        if (nosign) {
            match.sign = '';
        } else {
            match.sign = match.negative ? '-' : match.sign;
        }
        var l = match.min - match.argument.length + 1 - match.sign.length;
        var pad = new Array(l < 0 ? 0 : l).join(match.pad);
        if (!match.left) {
            if (match.pad == '0' || nosign) {
                return match.sign + pad + match.argument;
            } else {
                return pad + match.sign + match.argument;
            }
        } else {
            if (match.pad == '0' || nosign) {
                return match.sign + match.argument + pad.replace(/0/g, ' ');
            } else {
                return match.sign + match.argument + pad;
            }
        }
    }
}

sprintf = sprintfWrapper.init;


function calcul(){

var resultat_obtenue=document.getElementById('loginField').value;

var valeur=resultat_obtenue.toString();

var dateactuelle = new Date(valeur.substr(6,4),valeur.substr(3,2) - 1,1 + parseInt(valeur.substr(0,2), 10));
window.status="Annee : "+valeur.substr(6,4)+" Mois : "+valeur.substr(3,2)+" Jours : "+valeur.substr(0,2);
var annee=dateactuelle.getFullYear();
var mois=sprintf("%02d", dateactuelle.getMonth()+1);
var jour=sprintf("%02d", dateactuelle.getDate());
var date=jour+"-"+mois+"-"+annee;
document.getElementById("loginField").value=date;

}
</script>
<table>
<tr>
<td><div id='date_div'><input type="text" name="login" align="middle" id="loginField" value='01-12-2008' ></div></td>
<td onclick="calcul()"><img src="images/Fleche3.jpg"/ width="30" height="30"></td>
</tr></table>


Tu verras, il y a une fonction sprintfWrapper que j'ai trouvée sur Internet pour utiliser ensuite sprintf comme en C.

Et puis j'ai transformé ton code en HTML pur, pour tester c'ets plus simple. Donc il restera à le retransformer en PHP... je te laisse ça à faire à titre d'exercice ;-)


Raph
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 65
21 avril 2008 à 13:30
ah cool merci beaucoup ça marche

sinon pour mon checkbox tu voit de quoi ça vient (post3)

par contre va falloir comprendre le code car il faut que je fasse le sens contraire (diminuer la date d'un jour si clique sur fleche)

MERCI MERCI MERCI BEAUCOUP
bonne aprem
0
R4f Messages postés 441 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 5 mai 2008 62
21 avril 2008 à 16:25
Faut recopier le code et remplacer la chaine
var dateactuelle = new Date(valeur.substr(6,4),valeur.substr(3,2) - 1,1 + parseInt(valeur.substr(0,2), 10));


par

var dateactuelle = new Date(valeur.substr(6,4),valeur.substr(3,2) - 1,-1 + parseInt(valeur.substr(0,2), 10));



Raph
0
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 65
21 avril 2008 à 14:44
bon ben nikel j'ai trouvé pour diminuer il me manque plus que mon checkbox

merci encore
0
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 65
21 avril 2008 à 18:22
oui oui j'avais trouvé. et pour le checkbox pourquoi ça marche pas comme j'ai fait?

Merci encore
0
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 65
21 avril 2008 à 21:12
encore un tit coup de main SVP
0
R4f Messages postés 441 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 5 mai 2008 62
21 avril 2008 à 23:51
T'as vraiment fait ce qui est expliqué là ? :
https://www.456bereastreet.com/lab/styling-form-controls-revisited/checkbox/

T'as quoi comme config (OS + navigateur) ?

0
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 65
22 avril 2008 à 10:04
Bonjour, j'ai fait ceci mais mon checkbox est toujours aussi petit

<html>
<head>
<style type="text/css">

#el08 {
width:4em;
height:4em;
}
</style>
</head>
<body>

<input type="checkbox" id="el08">
<label for="el08"></label>
</body>
</html>

j'ai windows XP et je suis sur mozilla firefox
Merci
0
R4f Messages postés 441 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 5 mai 2008 62
22 avril 2008 à 11:02
En effet, sous Firefox2/Windows XP ça marche pas ! ;-(

https://www.456bereastreet.com/lab/styling-form-controls-revisited/checkbox/#ff2-xp


Bon, les grands moyens ;-) :
http://www.chriserwin.com/scripts/crir/index.php


Raph
0
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 65
22 avril 2008 à 11:58
ouah merci mais c'est galère ton truc
0
R4f Messages postés 441 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 5 mai 2008 62
22 avril 2008 à 13:44
1- c'est pas mon truc
2- c'est pas galère puisque ça te sauve la mise !

Don't worry, be happy !



Raph
0
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 65
22 avril 2008 à 15:28
c'est vrai c'est vrai pardon.
0
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 65
25 avril 2008 à 10:39
bonjour à tous
alors la c'est sur vous aller trouver que j'abuse.
Mais enfaite j'aimerais que la date s'affiche en clair lundi 24 avril 2008 et qu'elle s'incrémente de la même façon
alors j'ai bien essayer mais....
Merci d'avance de votre aide
0
R4f Messages postés 441 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 5 mai 2008 62
25 avril 2008 à 10:53
Pour le moment, elle ne s'affiche pas ? Elle fait sa timide, elle se cache ?

0
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 65
25 avril 2008 à 10:55
si mais elle s'affiche jour-mois-annee et moi j'aimerais par exemple vendredi 24 avril 2008 et si on clique de 1 jour samedi 25 avril 2008
Merci de votre aide
0
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 65
25 avril 2008 à 13:21
Bon enfaite c'est bon j'ai trouver il suffit de faire un input type hidden pour que les fonction continu a avoir des chiffres puis on fait un input type text juste pour afficher la date qui auras ete convertit .

Enfin je suppose que c'est flou mais bon ça marche .

Merci
0