IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ext JS / Sencha Discussion :

Lire une fonction PHP dans du JS


Sujet :

Ext JS / Sencha

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 55
    Points : 23
    Points
    23
    Par défaut Lire une fonction PHP dans du JS
    Bonjour,

    Voici un code php/ajax[Et plus précisément php-ext qui génère du extJS]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    function LoadData($fichier)
    {
    	$checkColumn = new PhpExtUx_Grid_CheckColumn("Select");
    	$checkColumn->setDataIndex(utf8_encode("Séléctionner"));
    	$checkColumn->setWidth(55);	
     
    	$editStrBox = PhpExt_Form_ComboBox::createComboBox("cmbLight")
             		->setTypeAhead(true)
    				->setTriggerAction(PhpExt_Form_ComboBox::TRIGGER_ACTION_ALL)
    				->setTransform("light") #?
    				->setLazyRender(true)
    				->setListCssClass('x-combo-list-small');
     
    	$editNumBox = PhpExt_Form_NumberField::createNumberField("txtPrice")
    				->setAllowBlank(false)
    				->setAllowNegative(false);
     
     
    	// Chargement du fichier xml
    	$store = new PhpExt_Data_Store($fichier);
    	//$store->setUrl($fichier)
    	$store->setUrl($fichier)
    		  ->setReader($reader);
     
    	$colModel = new PhpExt_Grid_ColumnModel();
    	$colModel->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Author","Author",null,120, null, null, true)
    				->setEditor($editStrBox))
    			 ->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Title","Title",null,180,null,null, null, true)
    			 	->setEditor($editStrBox))
    			 ->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Manufacturer","Manufacturer",null,115,null,null, true)
    			 	->setEditor($editStrBox))
    			 ->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Product Group","ProductGroup",null,100,null,null, true)
    			 	->setEditor($editStrBox))
    			 ->addColumn($checkColumn);
     
    	$grid = new PhpExt_Grid_GridPanel();
    	$grid->setStore($store)
    		 ->setColumnModel($colModel)
    		 ->setHeight(600)
    		 ->setWidth('auto');
    }
     
    $btnElementViewVendeur = PhpExt_Element::getByID("btnViewVendeur");
    $btnViewVendeur = PhpExt_Button::createTextButton("Afficher la liste");
    $btnViewVendeur->setId('btnViewVendeur');
    $btnViewVendeur->setMinWidth('197');
     
    $btnHandlerViewVendeur = PhpExt_javascript::functionDef(null,
    			 LoadData("sheldon2.xml")); //N'est pas pris comme fonction PHP
     
    $p2->addItem($btnViewVendeur);
    Comme vous le voyez, mon bouton sera générer en JS, et par conséquent sa me formera le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Ext.Element.get('btnViewVendeur').on('click',function() {
     LoadData("sheldon2.xml");
     });
    Le problème est que JS ne peut charger du php, ma question est donc:
    "Comment appeller la fonction php lors du click du bouton généré en extjs?"

    Meilleures salutations,

    Yannick

  2. #2
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut Une piste
    Salut,

    Je ne connais pas trop Ext mais une chose est certaine: la seule façon d'appeler ta fonction php depuis le client est d'effectuer un appel RPC et sûrement dans ton cas un appel AJAX. (On peut imaginer aussi du REST mais je ne pense pas que ce soit ce que tu cherches).

    A toi de générer cet appel Ajax depuis le client (Ext ne peut pas le faire ??!!) .

    Certainement via un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //load représente l'appel Ajax dont tu disposes sûrement
    PhpExt_Javascript::stm("load('page.php?f=LoadData&fichier=sheldon2.xml')");
    et dans page.php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    include("functions.inc");
     
    $f = $_GET["f"];
    $fichier = $_GET["fichier"];
     
    call_user_func_array($f, array($fichier));
     
    //ou
    //$f($fichier);
    ERE

Discussions similaires

  1. Appel d'une fonction PHP dans un formulaire
    Par Mut dans le forum Langage
    Réponses: 4
    Dernier message: 27/08/2007, 11h34
  2. [SQL] comment "desactiver" une fonction php dans une page?
    Par horas dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/05/2007, 15h04
  3. Lire une page php dans un cadre
    Par _SamSoft_ dans le forum Flash
    Réponses: 18
    Dernier message: 06/05/2007, 14h25
  4. [Mail] Inclure une fonction php dans un mail
    Par Tobleron dans le forum Langage
    Réponses: 12
    Dernier message: 26/02/2007, 14h23
  5. Réponses: 3
    Dernier message: 06/11/2005, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo