Bonsoir,
J'ai une page HTML qui comporte un DIV et un formulaire "submit" qui appelle une page PHP pour un traitement de données.
Je souhaite que la page php s'exécute dans le DIV de la page HTML sans rafraichissement de cette dernière.
J'ai bien compris que je devais passer par ajax/jquery mais je ne connais pas cette approche.
J'ai adapté des bouts de code glanés sur le web mais sans résultat. Mes données s'affichent mais sur une nouvelle page.
Quelqu'un peut me venir en aide svp ?
Voici ci dessous la partie interessante de mon html et de mon php
page jeu.php (page html)
et la page calcul.php
Merci par avance pour votre aide.
J'ai une page HTML qui comporte un DIV et un formulaire "submit" qui appelle une page PHP pour un traitement de données.
Je souhaite que la page php s'exécute dans le DIV de la page HTML sans rafraichissement de cette dernière.
J'ai bien compris que je devais passer par ajax/jquery mais je ne connais pas cette approche.
J'ai adapté des bouts de code glanés sur le web mais sans résultat. Mes données s'affichent mais sur une nouvelle page.
Quelqu'un peut me venir en aide svp ?
Voici ci dessous la partie interessante de mon html et de mon php
page jeu.php (page html)
<script>
//initialisation du code
$(document).ready(function()
{
$("#box-saisie").submit(function()
{
var s = $("#monchoix").val();
$.ajax({
url: "calcul.php",
type: "POST",
data: {monchoix},
success: function (data)
{
$("#box-droite").html=data;
}
});
return false;
}
});
});
</script>
<div id="box-gauche">
.../...
</div>
<div id='box-droite'></div> // ******************** div de destination souhaité
<div class='box-title'><?php echo "Vous devez entrer un mot de ".$_SESSION['longueur']." lettres pour ".$_SESSION['points']." points";?></div>
<div id='box-saisie'>
<table>
<tr><td>
<form action="calcul.php" method="POST">
<input type="text" name="monchoix" id="monchoix" class="saisie" minlength="<?php echo $_SESSION['longueur'];?>" maxlength="<?php echo $_SESSION['longueur'];?>">
</td><td>
<input type="submit" value="ENVOI" id="envoyer">
</td>
</form>
</tr>
</table>
</div>
et la page calcul.php
<?php
session_start();
$found = str_split(strtoupper($_SESSION['motdujour']));
$copy = array_slice($found, 0);
$result = [];
$tpl = '<span class="button %s">%s</span>';
$output = '';
if(!empty($_POST['monchoix'])){
$_SESSION['nbcoups'] = $_SESSION['nbcoups']+1;
if ($_SESSION['nbcoups'] > 4){
$_SESSION['indice'] = "<a href='indice.php' class='indice'><p style='text-align: center'>Cliquez pour obtenir l'indice</p></a>";
} else {
$_SESSION['indice'] = '';
}
$answer = str_split(strtoupper(trim($_POST['monchoix'])));
if(count($found) === count($answer)){
foreach($answer as $k => $v){
if($found[$k] === $v){
$result[$k] = [
'char' => $v,
'cls' => "lettre_placee",
];
unset($copy[$k]);
}else{
$result[$k] = [
'char' => $v,
'cls' => "lettre_absente",
];
}
}
foreach($result as $k => $v){
if($v['cls'] === "lettre_absente"){
if(in_array($v['char'], $copy)){
$result[$k]['cls'] = "lettre_non_placee";
$index = array_search($v['char'], $copy);
unset($copy[$index]);
}
}
}
foreach($result as $k => $v){
$output .= sprintf($tpl, $v['cls'], $v['char']);
}
}
$_SESSION['points'] = $_SESSION['points'] -1;
$_SESSION['init'] = 'ok';
}
?>
<p><?= $output ?></p>
Merci par avance pour votre aide.