JAVASCRIPT DANS PHP

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : JAVASCRIPT DANS PHP

par matt_m » 19 déc. 2005, 08:44

bonjour

il existe une classe tres bien se trouvant sur phpclasses.org qui fait exactement ce que tu souhaites faire.
en ce qui concerne la bufferisation, tu peux placer les fonctions de demarrage et de de fin de bufferisation n'importe ou. ob_start doit etre appelé avant le code que tu veux bufferiser, et non pas avant chaque envoi.
bien cordialement,

C'est de l'AJAX ce truc !

par lemoineo » 18 déc. 2005, 15:35

Afficher une barre de progression d'une action dans une page web n'est pas facile !
Il faut faire communiquer autrement que par un GET ou un POST (cas classique PHP->HTML et donc JAVASCRIPT) et pour celà, il faut utiliser les technologies AJAX, c'est -à-dire utiliser dans un JAVASCRIPT les objets XMLHTTPREQUEST par exemple.
Sans vouloir te décourager, tu t'es attaqué à un gros morceau !
Quelques exemples un peu partout sur le WEB ...
Pour ma part, j'utilise ces fonctions pour mettre à jour des inputs d'un formulaire (quelques exemples sur mon site)
voir http://lemoineo.free.fr/developpements
Mais ce n'est pas du temps réel, aucun lien avec le temps qui passe.
Toi tu cherche à faire afficher une barre en fonction d'un évènement du serveur (taille d'un fichier uploadé par exemple)
Regarde du côté de XMLRAD, ils ont développé quelques trucs de ce genre, mais tu devra un peu fouiller !!!

par sunmx » 16 déc. 2005, 11:48

Je ne comprend toujours pas le systeme des buffers, j'ai regardé le manuel et y a plein de fonction ce ressemble. Je ne sais pas les qu'elles prendre.

Revoici mon code. Tout est dans une seule page !

// mon javascript avec ma function progress_update();

// du html

<?php

include "class/class_thumbs.php";

$thumbs = new thumbs;

$thumbs->min_mh = "470";
$thumbs->min_mv = "400";
$thumbs->min_px = "75";
$thumbs->min_in = "min";
			
$pathdir = "galerie/bosgpx";
$open= opendir($pathdir);
			
while( $img = readdir($open) )
{
	if( preg_match("/\.(gif|png|jpe?g)$/i", $img) )
	{
		if( !file_exists("$pathdir/min/$img") )
		{
			$thumbs->resize_picture($img, $pathdir);
			ob_start();
			echo "<br /><script>progress_update();</script>";
			ob_get_flush();
		}
	}
}

closedir($open);
?>

Merci de votre aide.

par DocType » 16 déc. 2005, 02:09

ne pas oublier que ob_start, tout comme session_start doit être mis avant tout affichage....
Donc je te conseille de le mettre en première ligne de ton fichier que tu appelles :wink:

par sunmx » 16 déc. 2005, 01:28

Je n'arrive pas à faire fonctioner avec ob_start();

Voila ce que donne le script PHP.
<?php
$nb_img = 400;
$x = 0;
while( $x != $nb_img )
{
	$x++;
	ob_start();
	echo $x."<br /><script>progress_update();</script>";
	$stock_ob = ob_get_contents();
	echo $stock_ob;
	ob_end_clean();
}
?>
Est-ce que mes fonctions, ob_start(), ob_get_contents(), ob_end_clean(), sont bien placées et servent-elles à quelque chose? ma barre de ne progresse pas.

Merci d'avance

par sunmx » 16 déc. 2005, 00:37

merci, je vais me pencher sur le sujet la, j'éspere ne rencontrer aucune autre difficulté.

Merci encore

par Cyrano » 16 déc. 2005, 00:11

Tout simplement parce que les deux ne peuvent pas être exécuté simultanément : le PHP sera exécuté obligatoirement AVANT coté serveur pour envoyer le JavaScript qui sera quant à lui interprété coté client.
Pour avoir un semblant de simultanéité afin qu'il y ait un début d'interprétation coté client avant la fin de l'exécution coté serveur, explore la fonction ob_flush()

JAVASCRIPT DANS PHP

par sunmx » 15 déc. 2005, 21:51

Bonjour,

Je suis un peu limité en connaissance javascript et voila mon probléme.

J'ai crée un script javascript, c'est une barre de progression et cette barre je voudrais m'en servir dans un script PHP.

C'est là le probleme, la barre s'affiche une fois l'execution du script PHP fini.

Aidez-moi svp !

Voici comment se passe mon script

//   MON SCRIPT JAVASCRIPT AVEC MA FONCTION POUR LA BARRE

<script language="JavaScript" type="text/javascript">
function progress_update()
{
    // .... j'ai coupé volontairement
}
</script>

// ICI Y A DU HTML POUR LA BARRE .... j'ai coupé volontairement


// et voici mon script php je l'ai simplifier volontairement, autrement c'est de la creation d'image

<?PHP


$nb_img = 400;

while( $x != $nb_img )
{
	$x++;
	echo "<br /><script>progress_update();</script>";
}

?>
Voila tout, comment faire pour executer du javascript et PHP en meme temps ? La est mon probleme, ma barre JS marche trés bien seule, mon script PHP aussi, mais les 2 ensembles c'est la cata !!

Merci d'avance