Lancement de script via la balise <a href= >
tanis
-
Mihawk Messages postés 4753 Statut Contributeur -
Mihawk Messages postés 4753 Statut Contributeur -
Bonjour,
J'ai un petit souci dans mon code. J'essaye de faire ça :
mon script :
Le Gros problème c'est que mon script ne se lance pas, je n'ai même pas l'affichage de l'alerte.
J'ai un petit souci dans mon code. J'essaye de faire ça :
<a href="#" onclick="javascript:infoChamp(<?php echo $nom_champ ?>)"> <?php echo $nom_champ ?> </a>
mon script :
function infoChamp(value)
{
alert('TEST');
var xhr;
try { xhr = new ActiveXObject('Msxml2.XMLHTTP'); }
catch (e)
{
try { xhr = new ActiveXObject('Microsoft.XMLHTTP'); }
catch (e2)
{
try { xhr = new XMLHttpRequest(); }
catch (e3) { xhr = false; }
}
}
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4)
{
if(xhr.status == 200)
document.ajax.dyn="Received:" + xhr.responseText;
else
document.ajax.dyn="Error code " + xhr.status;
}
};
var nom_champ;
nom_champ=value;
var nom_champ = encodeURIComponent(nom_champ);
xhr.open( "GET", "data_liste_table.php?nom_champ", true); // recupere la liste des tables contenant le champs choisi
xhr.send(null);
var liste_table = JSON.parse(xhr.responseText);
}
Le Gros problème c'est que mon script ne se lance pas, je n'ai même pas l'affichage de l'alerte.
A voir également:
- A href script
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Script cmd - Guide
- Execution du script d'installation microsoft vc redistributable - Forum Jeux vidéo
10 réponses
Ce qui est surprenant c'est que l'alerte fonctionne si je le lance directement dans la balise
J'ai bien entendu essayé d'écrire mon appel de script sous cette forme :
ça ne fonctionne pas non plus.
Une précision supplémentaire, ma balise est dans une boucle for.
<a href="#" onclick="javascript:alert('TEST')"> <?php echo $nom_champ ?> </a>
J'ai bien entendu essayé d'écrire mon appel de script sous cette forme :
<a href="javascript:infoChamp(<?php echo $nom_champ ?>)"> <?php echo $nom_champ ?> </a>
ça ne fonctionne pas non plus.
Une précision supplémentaire, ma balise est dans une boucle for.
Personne n'a une petite idée d'où pourrais venir le problème ?
Je bloque sur un autre appel de fonction java script (qui également ne se lance pas).
Quelqu'un serait il en mesure de m'aider s'il vous plait ?
Je bloque sur un autre appel de fonction java script (qui également ne se lance pas).
Quelqu'un serait il en mesure de m'aider s'il vous plait ?
bonjour ,
essyez de mettre des " ' " avant les balises PHP <? ?>
<a href="#" onclick="javascript:infoChamp('<?php echo $nom_champ ?>')"> <?php echo $nom_champ ?> </a>
essyez de mettre des " ' " avant les balises PHP <? ?>
<a href="#" onclick="javascript:infoChamp('<?php echo $nom_champ ?>')"> <?php echo $nom_champ ?> </a>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Essaye comme ça :
Essaye comme ça :
<?php
echo('<a href="#" onclick="javascript:infoChamp(\''.$nom_champ.'\')"> '.$nom_champ.'</a>');
?>
Toujours pas.
J'avoue que je bloque complétement sur ce problème, je suppose que sa doit être un problème de syntaxe ...
J'avoue que je bloque complétement sur ce problème, je suppose que sa doit être un problème de syntaxe ...
Je vous donne l'intégralité de mon code, c'est assez lourd, désolé.
<!DOCTYPE html>
<?php
session_start();
// set_time_limit(0); // permet de ne plus limiter le timeout du navigateur
$nom_table="VTR_UG";
?>
<html>
<head>
<!-- <?php echo $_SERVER['PATHEXT']; ?> permet de verifier si java script est activé (cf js ou jse ) -->
<title>Vue Cascade </title>
<link rel="STYLESHEET" href="style.css" type="text/css"/>
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Permet de faire fonctionner le HTML 5 même dans un navigateur ancien -->
<script type="text/javascript">
function infoChamp(value)
{
alert('TEST');
var xhr;
try { xhr = new ActiveXObject('Msxml2.XMLHTTP'); }
catch (e)
{
try { xhr = new ActiveXObject('Microsoft.XMLHTTP'); }
catch (e2)
{
try { xhr = new XMLHttpRequest(); }
catch (e3) { xhr = false; }
}
}
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4)
{
if(xhr.status == 200)
document.ajax.dyn="Received:" + xhr.responseText;
else
document.ajax.dyn="Error code " + xhr.status;
}
};
var nom_champ;
nom_champ=value;
var nom_champ = encodeURIComponent(nom_champ);
xhr.open( "GET", "data_liste_table.php?nom_champ", true); // recupere la liste des tables contenant le champs choisi
xhr.send(null);
var liste_table = JSON.parse(xhr.responseText);
}
function redirection() {
nom_table=document.getElementById("value");
<?php $_SESSION['nom_table'] = $_GET['nom_table']; ?>
window.location.replace("vue_cascade.php");
}
</script>
</head>
<body class="page">
<div id="header">
<!-- Bienvenue <?php
echo' '. $_SESSION['Nom'].' '. $_SESSION['Prenom'].''; ?> -->
</div>
<div id="menu">
<h1> Menu </h1><br />
<a href="page_centrale.php">Page Centrale</a><br/><br/>
<a href="vue.php">Vue</a><br/><br/>
<a href="role_schema.php">Role et Schema</a><br/><br/>
</div>
<div id="deconnexion">
<form action="deconnexion.php">
Vous êtes connecté en tant que <!-- <?php echo $_SESSION['login']; ?> -->.<br/>
<input class="submit" type="submit" name="Deconnexion" id="Deconnexion" value="Deconnexion"/><br/>
</form>
</div>
<div id="corps">
<h2> Vue Cascade </h2><br/>
<div id="cadre_gauche">
<table cellspacing="3" cellpadding="2">
<tr>
<td><h3>Nom Table: <?php echo $nom_table ?></h3></td> <!-- Aller chercher le Nom de la Table selectionné -->
</tr>
<tr>
<td> <!-- Créer un volet déroulant regroupant l'ensemble des Tables Vue , Afficher le nom de la table préselectionné directement dans le volet deroulant -->
<select name="liste" onchange="redirection(this.value)" >
<?php
include("connexion_DWH.php"); // connexion a la Bdd
$resource_nbr_table=odbc_exec($connexion,"Select count( distinct table_name ) from user_tab_privs where grantee = 'USR_DWH_FRANCE' and privilege = 'SELECT'and table_name not like 'BIN%'" );
odbc_fetch_into ($resource_nbr_table, $result_array_1 );
$nbr_table=$result_array_1{0}; // nombre de Tables Vue
$resource_nom_table_menu_deroulant = odbc_exec($connexion,"Select distinct table_name from user_tab_privs where grantee = 'USR_DWH_FRANCE' and privilege = 'SELECT'and table_name not like 'BIN%' GROUP by table_name order by table_name" );
if (!$connexion) { // verification de la connexion a la Bdd
?> <script type="text/javascript">
//window.location.replace("index.php");
alert('Erreur de connexion à la Base de données.');
</script>
<?php
;}
else {
for ($i=0;$i<$nbr_table;$i++) {
odbc_fetch_into ($resource_nom_table_menu_deroulant, $result_array_2_5,$i+1 );
odbc_fetch_into ($resource_nom_table_menu_deroulant, $result_array_2, $i );
$nom_table_menu_deroulant_1= $result_array_2{0} ;
$nom_table_menu_deroulant_2= $result_array_2_5{0}
// tableau qui rescence l'ensemble des vues accessibles par cet utilisateur
?>
<option value="<?php echo $nom_table_menu_deroulant_1 ?> <?php if ($i<nbr_table-1 and $nom_table_menu_deroulant_1==$nom_table) {echo ('selected="selected"');} ?> > <?php echo $nom_table_menu_deroulant_1 ?>
<!-- Affiche dans le menu déroulant l'ensemble des Tables Vues présentes dans la Bdd et effectue une redirection lors d'un changement de table , préselectionner la table déja choisis par l'utilisateur -->
<option value="<?php echo $nom_table_menu_deroulant_2 ?> <?php if ($nom_table_menu_deroulant_2==$nom_table) {echo ('selected="selected"');} ?> > <?php echo $nom_table_menu_deroulant_2 ?>
<?php
;}
;}
?>
</select>
</td>
</tr>
<!-- Lister l'ensemble des Champs contenu dans la Table selectionné -->
<tr>
<td>
<?php
$resource_nbr_champ=odbc_exec($connexion,"SELECT count(*) FROM user_tab_columns WHERE table_name ='" . $nom_table . "'");
odbc_fetch_into ($resource_nbr_champ, $result_array_3 );
$nbr_champ=$result_array_3{0};
//calcul du nombre de champs de la table selectionné
$resource_nom_champ=odbc_exec($connexion,"Select distinct COLUMN_NAME FROM user_tab_columns WHERE table_name ='".$nom_table."'GROUP by COLUMN_NAME" );
// Recuperation dans un tableau de l'ensemble des champs relatif a la vue selectionné
if (!$connexion) { // verification de la connexion a la Bdd
?> <script type="text/javascript">
//window.location.replace("index.php");
alert('Erreur de connexion à la Base de données.');
</script>
<?php
} else {
for ($j=0;$j<$nbr_champ;$j++) {
odbc_fetch_into ($resource_nom_champ, $result_array_4, $j );
$nom_champ=$result_array_4{0};
?>
<a href="#" onclick="javascript:infoChamp('<?php echo $nom_champ ?>')"> <?php echo $nom_champ ?> </a> </br>
<?php // <!-- Affichage de tous les champs de la Table selectionné -->
} ;
$nom_champ='';
}
?>
</td>
</tr>
</table>
</div>
<div id="cadre_droite">
<!-- <INPUT type="text" name="dyn" value=""> -->
</div>
<div id="cadre_bas">
<h4>Informations relatives au champ <?php echo $nom_champ ?> :</h4>
</div>
</div>
<div id="footer">
<p style="text-align: right;"><a href="admin_contact.php">Contact</a></p>
</div>
</body>
</html>
Tu devrais installer le plugin "Firebug" sous Mozilla et faire tourner ton site dessus ; Firebug te sortira les erreurs Javascript s'il y en a.
Arrête moi si je me trompe, Firebug affiche le code source de la page en cours, et affiche en surligné jaune d'éventuelles erreurs de syntaxe ?
Si c'est bien ça, je n'ai pas d'erreur sur le code concerné par ma demande ...
Je désespère de comprendre pourquoi je n'arrive pas à appeler de fonction javascript ...
C'est la première fois que j'ai un tel problème , j'ai même vérifié si JS était bien activé sur le navigateur via la commande :
<?php echo $_SERVER['PATHEXT']; ?>
Si c'est bien ça, je n'ai pas d'erreur sur le code concerné par ma demande ...
Je désespère de comprendre pourquoi je n'arrive pas à appeler de fonction javascript ...
C'est la première fois que j'ai un tel problème , j'ai même vérifié si JS était bien activé sur le navigateur via la commande :
<?php echo $_SERVER['PATHEXT']; ?>