Javascript et php

java99 Messages postés 12 Statut Membre -  
jordane45 Messages postés 40050 Statut Modérateur -
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 40050 Statut Modérateur 4 757
 
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