Javascript et php

Fermé
java99 Messages postés 11 Date d'inscription mercredi 10 juin 2015 Statut Membre Dernière intervention 5 mai 2016 - Modifié par Whismeril le 28/07/2015 à 13:52
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 - 11 juin 2015 à 14:51
j'ai mi du code php dans du javascript sa ne s'execute et je sw conscience du faite ke le le php ne peut s'exécuter dans du javascript mai je veux ke lorsqu'on clik sur un checkbox sa execute une procedure stocké
script ci-dessous
function change1()
 {
  <?php
   $query="call sp_traiter('".$_SESSION['id']."')";
   mysql_query($query);
  ?>
  alert('requetes bien traité');
 }
<input type='checkbox' id='treat' onclick='change1()'/>

j'aimerai avoir des propositions pour traiter cela

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Merci d'y penser dans tes prochains messages.
.
A voir également:

1 réponse

jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
11 juin 2015 à 14:51
Bonjour,

1 - Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

2 - En effet ... tu ne peux pas appeler une fonction PHP depuis un script JS ou depuis une méthode comme onchange..onclick.....

A la limite... tu pourrais passer par de l'AJAX.
(pour cela, je t'invite à utiliser la librairie JQUERY qui facilite son utilisation et son écriture...)

Tu trouveras des exemples sur le net.

Mais en gros ça donnera quelque chose du genre :


<script type="text/javascript">
//----------------------------------------------------------//
// AJAX : Fonction de formatage des erreurs AJAX.
//-----------------------------------------------------------//
function formatErrorMessage(jqXHR, exception) {
    if (jqXHR.status === 0) {
        return ('Not connected.\nPlease verify your network connection.');
    } else if (jqXHR.status == 404) {
        return ('The requested page not found. [404]');
    } else if (jqXHR.status == 500) {
        return ('Internal Server Error [500].');
    } else if (exception === 'parsererror') {
        return ('Requested JSON parse failed.');
    } else if (exception === 'timeout') {
        return ('Time out error.');
    } else if (exception === 'abort') {
        return ('Ajax request aborted.');
    } else {
        return ('Uncaught Error.\n' + jqXHR.responseText);
    }
}

function change1(id){
var urlAjx = "change.ajx.php";
var data = {id:id};
    $.ajax({ 
           url:      urlAjx,
           dataType: "json",
           type:     "POST",
           data:     data,
           async:    false,
           success:  function(data){
                      //console.log(data);
                      if(data==true){
                        alert('requetes bien traitée');
                      }else{
                        alert("Erreur :" + data);
                      }
                     },
            error:function(jqXHR, textStatus){
             var error = formatErrorMessage(jqXHR, textStatus);
             alert('error :' + error);
            }
          });
}

</script>

<input type='checkbox' id='treat' onclick='change1(\"<?php echo $_SESSION['id']; ?> \")'/>




script PHP appelé par l' AJAX ( nommé par exemple : change.ajx.php )
<?php
//------------------------
// Script appelé par l'ajax
// nom du fichier :  change.ajx.php 
//--------------------------

//ne pas oublier d'inclure ton fichier de connexion à ta BDD !
// require_once('tonfichierdeCnx.php');

$id = isset($_POST['id'])?$_POST['id']:NULL;
if($id){
$query="call sp_traiter('".$id."')";
 mysql_query($query);
 $result = true;
}else{
  // si aucun ID passe en parametre
 $result = "Aucun ID passé en paramètre !";
}
echo json_encode($result);
?>


0