Variable javascript retourne toujours une valeur nulle

Résolu/Fermé
abirgl Messages postés 127 Date d'inscription lundi 31 octobre 2016 Statut Membre Dernière intervention 20 juin 2017 - 16 déc. 2016 à 14:14
abirgl Messages postés 127 Date d'inscription lundi 31 octobre 2016 Statut Membre Dernière intervention 20 juin 2017 - 16 déc. 2016 à 16:19
Bonjour,
Je veux exécuter un code javascript suivant une variable php que j'ai nommé $ot_commence, j'explique: si ma variable $ot_commence est nulle je fais une redirection à une page creation.php , sinon je fais une redirection à une page edit.php, la variable $ot_commence est déjà un résultat d'une requête sql, j'ai fait comme suit:
//requete qui affecte le resultat a $ot_commence, elle donne un affichage correcte
et après j'ai affecté la variable $ot_commence à une variable javascript que j'ai nommé otc

<script type="text/javascript">
var otc=<?php echo $ot_commence; ?>;
</script>

et après j'ai fait l'évennement sur les lignes de mon tableau, mais otc me renvoit toujours 0

<tr onmouseover="this.style.cursor='pointer'" onclick="alert(otc); if(otc===0) { window.location.replace('creation.php')} else { window.location.replace('edit.php')}" >

Est ce que vous pouvez m'aider svp ? je vous remercie d'avance



A voir également:

2 réponses

Utilisateur anonyme
16 déc. 2016 à 14:43
Bonjour

As-tu regardé le source généré (Ctrl-U) pour voir ce que PHP avait écrit à la place de ton
var otc=<?php echo $ot_commence; ?>;
?

D'ailleurs, je ne vois pas l'intérêt de ta variable javascript otc : pouquoi ne pas demander à php d'écrire directement le bon window.location.replace en fonction de $ot_commence ?
1
abirgl Messages postés 127 Date d'inscription lundi 31 octobre 2016 Statut Membre Dernière intervention 20 juin 2017
16 déc. 2016 à 14:54
Bonjour,
voici le code de ma page, et le message mis à jour
Je veux exécuter un code javascript suivant une variable php que j'ai nommé $ot_commence, j'explique: si ma variable $ot_commence est nulle je fais une redirection à une page EditOt.php , sinon je fais une redirection à une page bonjour.php, la variable $ot_commence est déjà un résultat d'une requête sql, j'ai fait comme suit:
//requête qui affecte le résultat a $ot_commence, elle donne un affichage correcte
et après j'ai affecté la variable $ot_commence à une variable javascript que j'ai nommé otc


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>IN ADMIN PANEL | Powered by INDEZINER</title>
<link rel="stylesheet" type="text/css" href="style.css" />
<script type="text/javascript" src="clockp.js"></script>
<script type="text/javascript" src="clockh.js"></script>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="ddaccordion.js"></script>
<script type="text/javascript">
ddaccordion.init({
headerclass: "submenuheader", //Shared CSS class name of headers group
contentclass: "submenu", //Shared CSS class name of contents group
revealtype: "click", //Reveal content when user clicks or onmouseover the header? Valid value: "click", "clickgo", or "mouseover"
mouseoverdelay: 200, //if revealtype="mouseover", set delay in milliseconds before header expands onMouseover
collapseprev: true, //Collapse previous content (so only one open at any time)? true/false
defaultexpanded: [], //index of content(s) open by default [index1, index2, etc] [] denotes no content
onemustopen: false, //Specify whether at least one header should be open always (so never all headers closed)
animatedefault: false, //Should contents open by default be animated into view?
persiststate: true, //persist state of opened contents within browser session?
toggleclass: ["", ""], //Two CSS classes to be applied to the header when it's collapsed and expanded, respectively ["class1", "class2"]
togglehtml: ["suffix", "<img src="" class='statusicon' />", "<img src="" class='statusicon' />"], //Additional HTML added to the header when it's collapsed and expanded, respectively ["position", "html1", "html2"] (see docs)
animatespeed: "fast", //speed of animation: integer in milliseconds (ie: 200), or keywords "fast", "normal", or "slow"
oninit:function(headers, expandedindices){ //custom code to run when headers have initalized
//do nothing
},
onopenclose:function(header, index, state, isuseractivated){ //custom code to run whenever a header is opened or closed
//do nothing
}
})
</script>

<script type="text/javascript" src="jconfirmaction.jquery.js"></script>
<script type="text/javascript">

$(document).ready(function() {
$('.ask').jConfirmAction();
});

</script>
<script language="javascript" type="text/javascript" src="niceforms.js"></script>
<link rel="stylesheet" type="text/css" media="all" href="niceforms-default.css" />
</head>
<body>
<div id="main_container">
<div class="header">
<div id="clock_a"></div>
</div>
<div class="main_content">
<div class="menu">
<ul>
<li><a href="#" rel="nofollow noopener noreferrer" target="_blank">Liste des OT Planifiés</a> </li>
<li><a href="ListeOTNonRealises.php?id=1234" rel="nofollow noopener noreferrer" target="_blank">Liste des OT En cours</a> </li>
<li><a href="ListeInterventions.php?id=1234 " rel="nofollow noopener noreferrer" target="_blank"> Liste des OT Réalisés</a> </li>
</ul>
</div>

<div class="center_content">
<div class="right_content">
<h2>Liste des OT Planifiés</h2>
<table id="rounded-corner" summary="2007 Major IT Companies' Profit">
<thead>
<tr>
<th scope="col" class="rounded">N° OT</th>
<th scope="col" class="rounded">Date</th>
<th scope="col" class="rounded">Client</th>

</tr>
</thead>
<tbody>
<script type="text/javascript">
var otc=16/000011;
</script>
<tr onmouseover="this.style.cursor='pointer'" onclick="alert(otc); if(otc===0) { window.location.replace('EditOT.php?id=123416/000016')} else { window.location.replace('bonjour.php')}" >

<td> 16/000016</td>
<td> 2016-12-16 </td>
<td> 41100008 | JENDOUBA </td>
</tr>
<tbody>
<script type="text/javascript">
var otc=16/000012;
</script>
<tr onmouseover="this.style.cursor='pointer'" onclick="alert(otc); if(otc===0) { window.location.replace('EditOT.php?id=123416/000017')} else { window.location.replace('bonjour.php')}" >

<td> 16/000017</td>
<td> 2016-12-16 </td>
<td> 41100037 | delta cuisine </td>
</tr>
<tbody>
<script type="text/javascript">
var otc=16/000015;
</script>
<tr onmouseover="this.style.cursor='pointer'" onclick="alert(otc); if(otc===0) { window.location.replace('EditOT.php?id=123416/000018')} else { window.location.replace('bonjour.php')}" >

<td> 16/000018</td>
<td> 2016-12-16 </td>
<td> 41100005 | SNCFT </td>
</tr>
<tbody>
<script type="text/javascript">
var otc=0;
</script>
<tr onmouseover="this.style.cursor='pointer'" onclick="alert(otc); if(otc===0) { window.location.replace('EditOT.php?id=123416/000019')} else { window.location.replace('bonjour.php')}" >

<td> 16/000019</td>
<td> 2016-12-16 </td>
<td> 41100077 | EPPM </td>
</tr>
<tbody>
<script type="text/javascript">
var otc=0;
</script>
<tr onmouseover="this.style.cursor='pointer'" onclick="alert(otc); if(otc===0) { window.location.replace('EditOT.php?id=123416/000022')} else { window.location.replace('bonjour.php')}" >

<td> 16/000022</td>
<td> 2016-12-16 </td>
<td> 41100077 | EPPM </td>
</tr>

</tbody>
</table>

</div><!-- end of right content-->
</div> <!--end of center content -->
<div class="clear"></div>
</div>
<div class="footer">
</div>

</div>
</body>
</html>
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
16 déc. 2016 à 14:58
Ah, je n'avais pas vu ce fil, du coup j'ai répondu dans l'autre... Et au final je rejoins Le Père dans la solution apportée.
0
abirgl Messages postés 127 Date d'inscription lundi 31 octobre 2016 Statut Membre Dernière intervention 20 juin 2017
16 déc. 2016 à 15:34
Désolé, J'ai cru que j'ai supprimé ce post et poster un nouveau, vous m'avez répondu pour l'autre post ? il est supprimé par le modérateur :( pouvez vous me répondre ici svp ? je vous remercie bcp
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
Modifié par Reivax962 le 16/12/2016 à 15:56
(@lepère -> c'est le code HTML généré ici... Il avait posté le code php dans l'autre discussion, supprimée depuis)

Oui j'avais répondu et t'avais mis une solution... C'est abusé d'avoir tout supprimé...
Bref, j'essaie de reproduire.

Remplace ton code
<script type="text/javascript">
   var otc=<?php echo $ot_commence; ?>;
</script>
[...] <tr blabla onclick="tructruc" >

Par
<?php
   $onclick = "alert($ot_commence); ";
   if (0 == $ot_commence)
      $onclick .= "window.location.replace('EditOT.php?id=$kd')";
   else
      $onclick .= "window.location.replace('bonjour.php')";
?>
    <tr [...] onclick="<?php echo $onclick; ?>" >


(J'ai mis $kd... Je ne me souviens plus du nom de cette variable...)

Xavier
0
abirgl Messages postés 127 Date d'inscription lundi 31 octobre 2016 Statut Membre Dernière intervention 20 juin 2017
16 déc. 2016 à 16:19
Merci infiniment Mr, ça marche , merci aussi le père c super gentil de ré-écrire vos réponses :))
0
Utilisateur anonyme
16 déc. 2016 à 15:50
Il n'y a plus de $ot_commence dans le code que tu montres, c'est censé avoir un rapport avec ta question initiale ?
0
abirgl Messages postés 127 Date d'inscription lundi 31 octobre 2016 Statut Membre Dernière intervention 20 juin 2017
16 déc. 2016 à 15:52
J'ai obtenu ce code lorsque j'ai fait Ctrl+U, mais le code que j'ai écrit est le suivant :

<?php
include("connect.php");
$Code_Responsable=$_GET['id'];
$current_date=date('Y-m-j');
//echo $idListe;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>IN ADMIN PANEL | Powered by INDEZINER</title>
<link rel="stylesheet" type="text/css" href="style.css" />
<script type="text/javascript" src="clockp.js"></script>
<script type="text/javascript" src="clockh.js"></script>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="ddaccordion.js"></script>
<script type="text/javascript">
ddaccordion.init({
headerclass: "submenuheader", //Shared CSS class name of headers group
contentclass: "submenu", //Shared CSS class name of contents group
revealtype: "click", //Reveal content when user clicks or onmouseover the header? Valid value: "click", "clickgo", or "mouseover"
mouseoverdelay: 200, //if revealtype="mouseover", set delay in milliseconds before header expands onMouseover
collapseprev: true, //Collapse previous content (so only one open at any time)? true/false
defaultexpanded: [], //index of content(s) open by default [index1, index2, etc] [] denotes no content
onemustopen: false, //Specify whether at least one header should be open always (so never all headers closed)
animatedefault: false, //Should contents open by default be animated into view?
persiststate: true, //persist state of opened contents within browser session?
toggleclass: ["", ""], //Two CSS classes to be applied to the header when it's collapsed and expanded, respectively ["class1", "class2"]
togglehtml: ["suffix", "<img src="" class='statusicon' />", "<img src="" class='statusicon' />"], //Additional HTML added to the header when it's collapsed and expanded, respectively ["position", "html1", "html2"] (see docs)
animatespeed: "fast", //speed of animation: integer in milliseconds (ie: 200), or keywords "fast", "normal", or "slow"
oninit:function(headers, expandedindices){ //custom code to run when headers have initalized
//do nothing
},
onopenclose:function(header, index, state, isuseractivated){ //custom code to run whenever a header is opened or closed
//do nothing
}
})
</script>

<script type="text/javascript" src="jconfirmaction.jquery.js"></script>
<script type="text/javascript">

$(document).ready(function() {
$('.ask').jConfirmAction();
});

</script>
<script language="javascript" type="text/javascript" src="niceforms.js"></script>
<link rel="stylesheet" type="text/css" media="all" href="niceforms-default.css" />
</head>
<body>
<div id="main_container">
<div class="header">
<div id="clock_a"></div>
</div>
<div class="main_content">
<div class="menu">
<ul>
<li><a href="#" rel="nofollow noopener noreferrer" target="_blank">Liste des OT Planifiés</a> </li>
<li><a href="ListeOTNonRealises.php?id=<?php echo $Code_Responsable; ?>">Liste des OT En cours</a> </li>
<li><a href="ListeInterventions.php?id=<?php echo $Code_Responsable; ?> "> Liste des OT Réalisés</a> </li>
</ul>
</div>

<div class="center_content">
<div class="right_content">
<h2>Liste des OT Planifiés</h2>
<table id="rounded-corner" summary="2007 Major IT Companies' Profit">
<thead>
<tr>
<th scope="col" class="rounded">N° OT</th>
<th scope="col" class="rounded">Date</th>
<th scope="col" class="rounded">Client</th>

</tr>
</thead>
<?php
$sql = "select NOrdredeTravail, DateCreation,RaisonSociale,CClient from GP_OrdredeTravail
where CSousTraitant='$Code_Responsable' and DateCreation='$current_date' order by DateCreation ASC";
$stmt = sqlsrv_query( $conn, $sql );
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC) )
{
?>
<tbody>
<?php
$ot_com="";
$lk= $Code_Responsable.$row[0];
//echo $lk;
$num_ordre_de_travail=$row[0];
$sql_ot_commence="select NRattachement from GP_Rattachement where NOrdredeTravail='$num_ordre_de_travail' ";
$stmt_ot_commence=sqlsrv_query($conn, $sql_ot_commence);
$rslt_ot_commence=sqlsrv_fetch_array($stmt_ot_commence, SQLSRV_FETCH_NUMERIC);
//var_dump($rslt_ot_commence);

if($rslt_ot_commence!== NULL)
{
$ot_commence=implode($ot_com, $rslt_ot_commence);
echo "<br> $ot_commence<br>";
}
else
{
$ot_commence=0;
echo "<br> $ot_commence <br>";
}

?>
<script type="text/javascript">
var otc=<?php echo $ot_commence; ?>;
</script>
<tr onmouseover="this.style.cursor='pointer'" onclick="alert(otc); if(otc===0) { window.location.replace('EditOT.php?id=<?php echo $lk; ?>')} else { window.location.replace('bonjour.php')}" >

<td> <?php echo $num_ordre_de_travail ?></td>
<td> <?php echo date_format($row[1], 'Y-m-d'); ?> </td>
<td> <?php echo $row[3]." | ".$row[2]; ?> </td>
</tr>
<?php
}
sqlsrv_free_stmt( $stmt);

?>
</tbody>
</table>

</div><!-- end of right content-->
</div> <!--end of center content -->
<div class="clear"></div>
</div>
<div class="footer">
</div>

</div>
</body>
</html>
0