2011-09-02 4 views
0

À mon avis CakePHP, j'appeler la méthode dans le contrôleur, en utilisant jQuery:JavaScript contrôleur de CakePHP

function placeSensors(nk) { 
    $.ajax({ 
    type:'post', 
    url:'/myapp/maps/placeSensors/' + nk, 
    success: function(r) { 
     if(r.status = 'ok') { 
     } 
    } 
    }); 
} 

JS dans le contrôleur est défini avec par exemple .:

class MapsController extends AppController { 
    var $name = 'Maps'; 
    var $helpers = array('Js'); 
    var $uses = array('Measurings', 'Maps'); 
    var $components = array('RequestHandler'); // added later, but still the same 


function index($id = null, $value = null) { 
$code = ''; 
?> 
<script type="text/javascript"> 
    alert('Hello!'); 
</script> 
<?php 
return $code; 
} 

Ainsi, avec le code simple, Je ne peux pas recevoir de message d'alerte sur mon formulaire Web. Le code très simple que j'utilisais dans un autre projet et ça marche là-bas, et pour une raison quelconque cela ne marche pas sur celui-ci ...

Je suis vraiment coincé avec celui-ci, pouvez-vous s'il vous plaît m'aider ... ..

MISE à JOUR: c'est la réponse que je reçois par Firebug:

<script type="text/javascript"> 
    alert('Hello!'); 
</script> 
+0

Quelle réponse obtenez-vous si vous le vérifiez avec un outil comme FireBug? – dhofstet

+0

s'il vous plaît vérifier la partie mise à jour de mon message, j'obtiens réponse du contrôleur dans Firebug – user198003

Répondre

0

Ok, j'ai finalement résolu celui-ci.

Tout ce dont j'avais besoin était d'ajouter un formulaire et un texte, ou même un meilleur élément caché sur le formulaire.

Ensuite, tout a commencé à fonctionner.

Donc, mon code mentionné était ok, tout ce dont j'avais besoin était une seule zone de texte ......... Espérons que quelqu'un puisse me dire pourquoi?

Merci pour votre aide et votre soutien.

1

Vous essayez de placer le code qui devrait être affiché (javascript) par le client, à l'intérieur d'un contrôleur. Le contrôleur est pour la logique métier, que le client ne voit pas.

Placez votre javascript dans un fichier javascript dans le répertoire/webroot/js /.

Pour interagir avec ajax, dites à vos contrôleurs d'utiliser le composant RequestHandler pour déterminer s'ils sont appelés par ajax. De là, vous pouvez retourner des valeurs simples, ou retourner une vue json ou xml. Si cela vous semble compliqué, ne vous inquiétez pas pour l'instant et commencez aussi simplement que vous le souhaitez et créez lentement votre application.

1
function placeSensors(nk) { 
$.ajax({ 
    type:'post', 
    dataType:'json', 
    url:'/myapp/maps/placeSensors/' + nk, 
    success: function(r) { 
    if(r.status) { 
      alert(r.code); 
    } 
    } 
}); 
} 

     class MapsController extends AppController { 
      var $name = 'Maps'; 
      var $helpers = array('Js'); 
       var $uses = array('Measurings', 'Maps'); 


     function index($id = null, $value = null) { 


      } 

     // update below code 
     function placeSensors() { 
       $nk = $_POST['nk']; 
       echo json_encode(array(
      'status' => true, 
      'code' => "code"     
      )); 
     exit(); 

      } 
+0

toujours le même ... – user198003

+0

ajouter l'aide javascript – chetanspeed511987

+0

var $ helpers = array ('Html', 'Form', 'Javascript', 'Ajax') essayé aussi toute la combinaison de ceux-ci. toujours le même ...... – user198003

Questions connexes