[RESOLU] Uncaught TypeError: Cannot read property 'open' of undefined

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 : [RESOLU] Uncaught TypeError: Cannot read property 'open' of undefined

Re: [RESOLU] Uncaught TypeError: Cannot read property 'open' of undefined

par tlalaguedulac » 13 sept. 2016, 15:11

Je te remercie de ces précisions et ce modèle de code, j'ai réussi le chemin inverse aussi. Je n'avais effectivement pas compris certains points du rapport entre AJAX PHP HTML, maintenant c'est bien plus clair.

Je ferai en sorte d'être plus sûr de mes connaissances pour les futurs post. :)

Bonne fin de journée !

Et merci encore !

Re: Uncaught TypeError: Cannot read property 'open' of undefined

par moogli » 13 sept. 2016, 15:06

je sais bien que l'ajax est du javascript, seulement il se situe dans une page php c'est pour cela que j'ai écrit "php (ajax)" enfin merci pour la petite leçon de morale . Et merci à moogli qui est le seul à avoir tenté de me donner une solution concrete ! Je clos le sujet si c'est pour recevoir des commentaires comme ça.
le problème c'est que si l'on ne te comprend pas on ne peux pas t'aider.
C'est surement clair pour toi mais nous on ne connais ni ton projet ni ton code on ne peu pas toujours tout deviner du coup on demande des précisions, on explique un truc pour essayer d'avancer le sujet.

donc pour accéder au serveur tu utilises une requête serveur (souvent appelées ajax avec le bel l'acronyme de naroth). tu passe des paramètres (GET / POST etc) a cette requête.
coté serveur c'est un script php qui répond lorsqu'il finit son traitement un "echo" (ou print etc.) suffit pour renvoyer quelque chose à l'appelant (donc la du JS).

dans ton cas ton fichier php doit afficher du html.

de manière général une requête serveur faite depuis JS tu peux la faire directement dans ton navigateur (requête GET) ou un client rest (POST).

un peu de code pour aller avec ça
<script type="text/javascript">
 $.post('lefichier.php',{'TODO':'heures'})
    .done(function(data){
// traitement du xml
 });
</script>
<?php

if(!empty($_POST['TODO'])){
// ce que tu veux
// on envoi le résultat à l'appelant
    echo '<root><datas><data>...</data></datas></root>';
}
@+

Re: Uncaught TypeError: Cannot read property 'open' of undefined

par tlalaguedulac » 13 sept. 2016, 11:18

je sais bien que l'ajax est du javascript, seulement il se situe dans une page php c'est pour cela que j'ai écrit "php (ajax)" enfin merci pour la petite leçon de morale . Et merci à moogli qui est le seul à avoir tenté de me donner une solution concrete ! Je clos le sujet si c'est pour recevoir des commentaires comme ça.

Re: Uncaught TypeError: Cannot read property 'open' of undefined

par Naroth » 13 sept. 2016, 11:09

Bonjour,

C'est marrant mais tu continues.

AJAX est l'acronyme de Asynchronous JavaScript and XML
L'AJAX EST du javascript.

Re: Uncaught TypeError: Cannot read property 'open' of undefined

par tlalaguedulac » 13 sept. 2016, 11:01

Okay je m'exprime mal alors, et j'en suis confus ! J'ai tout de même réussi à accéder à ma page ajax (PHP). Maintenant c'est le trajet retour qui me pose souci :) Pour envoyer des données de mon fichier php (ajax) vers mon fichier Javascript.

Re: Uncaught TypeError: Cannot read property 'open' of undefined

par @rthur » 12 sept. 2016, 17:41

Tu as peut être compris tout cela, mais tu continues de dire des choses inexactes qui donnes l'impression que c'est flou pour toi.
je voulais simplement écrire depuis ma page en ajax !
Ajax n'écrit pas dans une page. Javascript peut faire une requête en ajax et écrire le résultat dans la page.

Re: Uncaught TypeError: Cannot read property 'open' of undefined

par tlalaguedulac » 12 sept. 2016, 15:33

Désolé de m'être mal exprimé, car j'ai compris tout cela ! La communication entre les langages et surtout ajax avec javascript et php.

J'ai du mal formulé ma question je voulais simplement écrire depuis ma page en ajax !

Je vais me débrouiller, et effectivement je prefererais du JSON mais mon stage m'oblige à rester sur du xml ...

Merci pour les infos !

Re: Uncaught TypeError: Cannot read property 'open' of undefined

par moogli » 12 sept. 2016, 15:29

salut,

je reprend ce que @rthur à dit "ajax" c'est un mot générique (dans notre, sinon c'est aussi un produit ménager) qui indique la façon de faire une requête http vers un serveur en Javascript.

donc tu as du JS qui fait un appel serveur qui va exécuter du php.
ce javscript requête HTTP de type POST vers page "php" au serveur cette page va vérifier et traiter les paramètres puis, en fonction des paramètres, retourner du xml.
Ensuite la fonction de callback JS digère le xml reçus.

au passage je te conseil d'utiliser du JSON plutôt que xml ;)

@+

Re: Uncaught TypeError: Cannot read property 'open' of undefined

par tlalaguedulac » 12 sept. 2016, 13:35

Désolé, j'ai fait une faute de frappe.

En fait j'aimerai simplement avoir une fonction javascript qui me permet avec formData.append('TODO', 'heures'), de catcher dans mon fichier ajax le mot 'heures' grâce à if (isset $_POST['TODO'] == 'heures'), et ensuite pouvoir écrire du xml que je récupererai dans ma page php.

Seulement tous mes exemples comportent une variable à transmettre et dans mon cas, je ne voudrai rien envoyer, seulement le moyen de me déplacer dans le fichier ajax au moyen du fonction js.

Merci pour l'erreur je vais travailler la dessus.

Re: Uncaught TypeError: Cannot read property 'open' of undefined

par @rthur » 12 sept. 2016, 12:09

Bonjour,

"Ajax", c'est simplement le nom donné à un code javascript qui va aller chercher des données sur le serveur sans recharger la page HTML courante.

Donc je veux bien que tu reformules ta question car elle n'est pas très compréhensible :
j'aimerai donc réussir à passer sur de ma page javascript à la page AJAX
Ma recommandation également est d'utiliser jquery qui est une librairie javascript très simple et puissante pour faire de l'ajax.

L'erreur que tu obtiens indiques que ta variable "xmlhttp" n'est pas définie

Uncaught TypeError: Cannot read property 'open' of undefined

par tlalaguedulac » 12 sept. 2016, 11:01

Bonjour,

Actuellement sur un project web / application, je rencontre un problème lors de l'envoi de données AJAX .

Etant obligé de passer par AJAX pour écrire dans ma page efficacement (mon prédecesseur a utilisé ce langage), j'aimerai donc réussir à passer sur de ma page javascript à la page AJAX, le problème étant que je n'ai pas besoin d'envoyer des données du JS à l'AJAX, je veux simplement que ma fonction JS m'amène dans la page AJAX afin d'écrire ensuite dans mon html.

Voici le code de ma fonction :
function toSendHeuresOtp(xmlhttp) {

	var formElement = document.getElementById('heures');
	formData = new FormData(formElement);
	formData.append('TODO', 'heures');

	xmlhttp.open('POST', 'controleur/ajaxGestionOTP.php', true);
	xmlhttp.send(formData);
}
J'obtiens l'erreur : Uncaught TypeError: Cannot read property 'open' of undefined

Si quelqu'un connait le moyen simple de passer du JS à l'AJAX sans envoyer de variables ou autres.

:)