Formulaire Ajax php

spokslayk Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   -  
4h18 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Tout d'abord je dois mentionner que je suis débutant en ajax.
Je doit réaliser une page (template) et l'insérer comme page d'accueil sur wordpress, jusque là, ça va.
Ceci dit, cette page doit contenir un formulaire avec un input "textarea" et un bouton "envoyer". puis l'envoi doit se faire via ajax en appelant un script php pour faire l'ajout dans la BDD et affichant les 10 derniers messages envoyés, le tout sans actualiser la page.

J'ai longuement chercher sur le net et j'ai fini par mettre en place quelques lignes de code mais ça ne marche toujours pas :

La page accueil en question :
<?php
/* 
Template Name: Accueil
*/ ?> 

<!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>Document sans titre</title>
<?php
get_header();?>

<!-- j'utilise le api d'ajax sur google-->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

<script language="javascript" type="text/javascript">
function ajaxRequest(){
 var activexmodes=["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"] //activeX versions to check for in IE
 if (window.ActiveXObject){ //Test pour support d'ActiveXObject in IE  (en tant que XMLHttpRequest dans IE7 est non fonctionnel)
  for (var i=0; i<activexmodes.length; i++){
   try{
    return new ActiveXObject(activexmodes[i])
   }
   catch(e){
    //suppression de l'erreur
   }
  }
 }
 else if (window.XMLHttpRequest) // dans Mozilla, Safari etc
  return new XMLHttpRequest()
 else
  return false
}

var mygetrequest=new ajaxRequest()
mygetrequest.onreadystatechange=function(){
 if (mygetrequest.readyState==4){
  if (mygetrequest.status==200 || window.location.href.indexOf("http")==-1){
   document.getElementById("result").innerHTML=mygetrequest.responseText
  }
  else{
   alert("Une erreur s'est produite durant la requête")
  }
 }
}
var txtvalue=encodeURIComponent(document.getElementById("txtarea").value)
mygetrequest.open("GET", "script_ajout.php?txtarea="+txtvalue, true)
mygetrequest.send(null)
</script>
</head>


<body>
        
        <div>
        <form  method="get" action="">
        <textarea id="txtarea" name="txtarea"></textarea></br>
        <input id="button" type="submit" value="Envoyer" /></br> 
        </form>
        </div>
         
<?php get_footer(); ?>
</body>
</html>


et le script php en question :

<?php 

$msg=htmlspecialchars($_GET['txtarea']);
$msg=stripslashes($msg)
 $db= mysql_connect('localhost','***','***') or die('Erreur de connexion !!! ').mysql_error();
	   //Selection de la BDD
       mysql_select_db('shootbox',$db) or die('Probleme selection BDD !!! ').mysql_error(); 
	   //Insertion dans la BDD	
	   mysql_query("INSERT INTO wp_message(id_message,corps_message) VALUES ('','".$msg."')") or die('Erreur dans le SQL ! ').mysql_error();
  
   $result=mysql_query('SELECT corps_Message, date_heure FROM wp_message ORDER BY date_heure DESC LIMIT 10 ') or die('Erreur dans le SQL ! ').mysql_error();
   
 
	  while($row = mysql_fetch_array($result)) {
        echo '<table style= border="3px"; bordercolor="#999999">'."\n";
		echo '<tr>';
		echo '<td> Envoyé le :'.$row['date_heure'].'</td>';
        echo '<td>'.$row['corps_Message'].'</td>';
        echo '</tr>'."\n";
		echo '</table>'."\n";
    		}
?>



La table wp_message contient troi colonnes (id_message, corps_message, date_heure(timestamp))

à L'AIIIIIIIIIIIDE

1 réponse

4h18 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   1
 
Y'a des plugins pour ça non ?
Si tu peux utiliser des plugins, regarde celui-là > http://4h18.com/2011/02/plugin-gravity-forms/

Sinon, bon courage, car avec du WordPress, il faut d'abord savoir comment wordpress envoi et traite les données pour venir intercaler ton code... Et là... paie ton aspirine.
0