l'asile.fr


Programmation, javascript

Salut,

J'ai un problème avec cette ligne, vu que je fais du javascript une fois l'an, j'ai a chaque fois des problèmes de syntaxe. Comment on écrit cette ligne en bon Javascript ?

-input type="text" name="recherche" size="40" maxlength="256" id="valeurinput" onchange="sendData('alpha='+document.getElementById('valeurinput').value,'b=rien','ajax.php','zonevisu')">


Je veux envoyer la valeur de l'input à une fonction javascript.

J'ai mis un - devant input sinon cela ne passe pas dans le forum.


Dernière modification le 10/11/15 à 10:30 par gwendal
mardi
10 novembre 2015 à 10:23
 
 

euh, trop court pour comprendre ce qu'est censé faire ce truc.

déjà dans le onchange a priori tu n'as pas besoin du document.getElementById('valeurinput'), puis ce que tu es déjà dans l'élément et un this.value devrait suffire, enfin j'ai pas fait de javascript depuis longtemps.


mardi
10 novembre 2015 à 10:30
 
 

&lt;!DOCTYPE html&gt;<br />
&lt;html&gt;<br />
    &lt;head&gt;<br />
        &lt;meta charset="UTF-8" /&gt;<br />
        &lt;title&gt;Title of the document&amp;lt;/title&gt;<br />
        &lt;script&gt;<br />
function sendData(a, b, c, d) {<br />
    document.getElementById('debug').innerHTML += "a: " + a + ", b:" + b + ", c:" + c + ", d:" + d <br />
}<br />
        &lt;/script&gt;<br />
    &lt;/head&gt;<br />
    &lt;body&gt;<br />
        &lt;div&gt;<br />
            &lt;form&gt;<br />
                &lt;input type="text" name="recherche" size="40" maxlength="256" id="valeurinput" onchange="sendData('alpha='+this.value,'b=rien','ajax.php','zonevisu')" /&gt;<br />
            &lt;/form&gt;<br />
            &lt;div id="debug"&gt;<br />
           &lt;/div&gt;<br />
        &lt;/div&gt;<br />
    &lt;/body&gt;<br />
&lt;/html&gt;


mais écrit comme tel, ça marche,
la seule limite est que le onchange se déclenche en sortie de focus du champ, pas à chaque changement, dans ce cas il faut utiliser onkeypress


Dernière modification le 01/05/16 à 01:28 par Akshell
mardi
10 novembre 2015 à 10:38
 
 

Super :)

Merci, c'est un peux la merde le javascript quand tu en fais par régulièrement.


mardi
10 novembre 2015 à 11:14
 
 

carwin
#5 sprattus sprattus

C'est un peu comme l'écrit, quoi :)


mardi
10 novembre 2015 à 18:23
 
 

haha ok ok, je me permet juste une petit ENFOIRE

Enfin merci à toi Akshell, j'ai bien avancé dans mon programme.

C'est pas comme d'autres qui ne savent que ce moquer.


Dernière modification le 10/11/15 à 21:29 par gwendal
mardi
10 novembre 2015 à 21:27
 
 

"se moquer"

c'est le syndrome du prof, il est déjà content quand l'un de ses élèves sait tenir un stylo.


mardi
10 novembre 2015 à 21:38
 
 

carwin a écrit
C'est un peu comme l'écrit, quoi :)

Ca s'épelle "les cris", voyons.


mercredi
11 novembre 2015 à 03:15
 
 

Non rien, j'arrive pas à placer du code ici c'est la merde :(


Dernière modification le 13/11/15 à 09:38 par gwendal
vendredi
13 novembre 2015 à 09:37
 
 

non mais fait juste un copier coller, je peux lire la source.


vendredi
13 novembre 2015 à 10:20
 
 

Donc voilà, encore un problème de syntaxe :(

function remplacediv(iddiv,idlotent,nomlotent)<br />
{<br />
document.getElementById(iddiv).innerHTML = "&lt;input type='text' name='numlot' size='2' maxlength='2' value='"+idlotent+"' style='font-size: 9px'&gt;&lt;input type='text' name='nomlot' size='40' maxlength='50' value='"+nomlotent+"' style='font-size: 9px'&gt;";<br />
document.getElementById(iddiv).innerHTML += "&lt;input type='button' value='OK' style='font-size: 9px' onclick=\"sendData('nummodiflot='+numlot.value,'nommodiflot='+nomlot.value,'ajax_modiflots.php','zonevisulots')\"&gt;";<br />
}


L'erreur dans la fenêtre programmation de chrome :

Uncaught ReferenceError: numlot is not defined


Dernière modification le 01/05/16 à 08:47 par Akshell
vendredi
13 novembre 2015 à 11:12
 
 

function remplacediv(iddiv, idlotent, nomlotent) {<br />
    serial = Math.floor((Math.random() * 10000000000) + 1)<br />
    document.getElementById(iddiv).innerHTML = "&lt;input type='text' name='numlot' id='numlot_"+serial+"' size='2' maxlength='2' value='"+idlotent+"' style='font-size: 9px'&gt;";<br />
    document.getElementById(iddiv).innerHTML += &lt;input type='text' name='nomlot' id='nomlot_"+serial+"' size='40' maxlength='50' value='"+nomlotent+"' style='font-size: 9px'&gt;";<br />
    document.getElementById(iddiv).innerHTML += "&lt;input type='button' value='OK' style='font-size: 9px' onclick=\"sendData('nummodiflot='+document.getElementById('numlot_"+serial+"').value,'nommodiflot='+document.getElementById('nomlot_"+serial+"').value,'ajax_modiflots.php','zonevisulots')\"&gt;";<br />
}<br />

Le problème ici est que ton bouton n'a pas accès aux autres inputs, donc pas d'accès directs aux valeurs, théoriquement tu peux à partir du bouton remonté au formulaire puis inspecté les éléments, mais c'est lourd.
Tu peux aussi utiliser le getByName, mais ça renvoie un tableau, et si tu en as plusieurs, ça devient compliqué.
alors le plus simple est de tricher: générer un serial, que tu connais quand tu génères les éléments du formulaire et l'utiliser pour générer des id uniques et lire directement les valeurs des éléments.


Dernière modification le 01/05/16 à 08:48 par Akshell
vendredi
13 novembre 2015 à 12:24
 
 

il doit y avoir plus simple en utilisant le onsubmit de <form> et récupérer les valeurs du formulaire à ce moment là plutôt que de gérer le onclick d'un bouton.


vendredi
13 novembre 2015 à 12:26
 
 

[afficher ce commentaire]

Je test cela dès lundi, merci, putain le javascript c'est quand même imbuvable.

P.S : On pourrait virer le boot volatile


vendredi
13 novembre 2015 à 21:24
 
 

ATTENTATS, CENSURE, JE DIS NON §


samedi
14 novembre 2015 à 20:43
 
 

Akshell je t'aime :) mon script ajax / javascript machin chose est presque terminé.


mardi
17 novembre 2015 à 11:55
 
 

Encore une syntaxe qui me fait .......

function changedivlot(iddudiv,valeur,idfacture,colonne)<br />
{<br />
	if (colonne==1)<br />
	{<br />
	var affichage="&lt;div&gt;";<br />
	affichage+="&lt;input type=\"text\" name=\"refsaisie\" size=\"9\" maxlength=\"9\" value='"+valeur+"' onblur=\"sendData('alpha='+this.value,'idfacture='"+idfacture+"'&amp;colonne=1','ajax_enrligne.php','ajaxfacture')\"&gt;";<br />
	affichage+="&lt;/div&gt;";<br />
	document.getElementById(iddudiv).innerHTML=affichage;<br />
	}<br />
}


j'ai une erreur : SyntaxError: missing ) after argument list

pour la ligne <input ............

Votre regarder le source comme toujours pour afficher l'ensemble du code :(


Dernière modification le 29/04/16 à 22:44 par Akshell
vendredi
29 avril 2016 à 16:12
 
 

désolé mais là je ne vois pas le problème


vendredi
29 avril 2016 à 22:10
 
 

Akshell a écrit
désolé mais là je ne vois pas le problème

Clique sur "citer". Y'a du code qui ne se voit pas.


vendredi
29 avril 2016 à 22:24
 
 

ah ouais, ça marche mieux, merci :)


vendredi
29 avril 2016 à 22:45
 
 

tu encadres ta chaines par tes guillemets et puis d'un coup vers alpha= tu décides que c'est des simples quotes, alors que ces quotes doivent faire partie de ta chaine résultante.
C'est pas clair ce que je dis, tldr : remplacer alpha=' par alpha=" et te démerder pour la suite ;)


Dernière modification le 30/04/16 à 13:47 par Cyp
samedi
30 avril 2016 à 13:45
 
 

parce que alpha est une chaine passé à une fonction javascript dans une propriété onblur, tu n'as pas le choix.


samedi
30 avril 2016 à 14:21
 
 

Ah oui le this.value n'est pas censé être interprété, my bad.


samedi
30 avril 2016 à 14:26
 
 

Selune
#25 Budmo !

Mé Wè ! Je suis tout à fait d'accord ! program.mybreakingbad quand c'est passé sur une chaîne, ça m'a trop rendu on.blurred !!!


samedi
30 avril 2016 à 19:33
 
 

function changedivlot(iddudiv,valeur,idfacture,colonne) {<br />
	if (colonne==1) {<br />
		var affichage="&lt;div&gt;";<br />
		affichage+="&lt;input type=\"text\" name=\"refsaisie\" size=\"9\" maxlength=\"9\" value='"+valeur+"'"<br />
			+ " onblur=\"sendData('alpha='+this.value,'idfacture="+idfacture+"&amp;colonne=1','ajax_enrligne.php','ajaxfacture')\"&gt;";<br />
		affichage+="&lt;/div&gt;";<br />
		document.getElementById(iddudiv).innerHTML=affichage;<br />
	}<br />
}

il y a effectivement une paire de simple quote en trop autour de idfacture, comme il fait parti du second paramètre de la fonction et qu'elle est déjà protégé, tu as seulement besoin des double quotes pour l'insérer dans la chaîne.


Dernière modification le 01/05/16 à 09:02 par Akshell
dimanche
01 mai 2016 à 08:59
 
 

Merci, je commence à comprendre.
Je programme surtout en php et cette logique est bizarre. Mais bon il est vrai qu'il y à enormement d'imbrication avex l'ajax.
Encore merci


dimanche
01 mai 2016 à 09:20
 
 

<mode Selune>
Oui, mais ça récure bien.
</mode Selune>

p.s.: rapport à la récursivité.


dimanche
01 mai 2016 à 09:26
 
 

hooo c'est cholii


dimanche
01 mai 2016 à 09:47
 
 

test³+1


Dernière modification le 01/05/16 à 13:04 par Akshell
dimanche
01 mai 2016 à 10:59
 
 


Répondre au sujet

Vous devez être identifié pour participer à ce topic.