J'arrive pas à faire fonctionner le script correctement ><

l2woyo Messages postés 29 Date d'inscription samedi 30 avril 2005 Statut Membre Dernière intervention 4 octobre 2008 - 21 juin 2008 à 22:16
djmmix Messages postés 152 Date d'inscription lundi 28 juillet 2003 Statut Membre Dernière intervention 29 avril 2009 - 1 août 2008 à 15:50
Bonsoir à tous,

donc voilà; je voulais faire un edit de thread de news automatique lorsque admin, suffit de clicker(ce qui le rend modifiable) et changer le texte: donc AJAX pour sauvegarder le résultat.. cependant, je n'arrive pas du tout à faire fonctionner le script ><

votre aide serait grandement appréciée!

Le code AJAX >>

function postedit(nom,nid)
{
var xmlHttp;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp= new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    try
      {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    catch (e)
      {
      alert("Your browser does not support AJAX!");
      return false;
      }
    }
  }

    xmlHttp.onreadystatechange=function()
    {
    if(xmlHttp.readyState==4)
      {
      document.getElementById(nom).innerHTML = xmlHttp.responseText;
      }
    }

  var text = escape(document.getElementById(nom).innerHTML);
  xmlHttp.open("GET","ajaxedit.php?id="+nid+"&text="+text,true);
  xmlHttp.send(null);

 
 }

Le code PHP (de la page appelée par le code AJAX)>>

<?php
require("connectdb.php");
session_start();

$query = @mysql_query("SELECT nAuthor FROM news WHERE WHERE nID= '$_GET[id]'");
$result =mysql_fetch_array($query)

        if($_SESSION['ACCESS'] = = 7 or ($_SESSION['ACCESS'] == 6 and
        strtoupper($result['nAuthor']) == strtoupper($_SESSION['AUTH'])))
        {
             $_GET['text'] = urldecode($_GET['text']);
             $query = @mysql_query("UPDATE news SET nText='$_GET[text]' WHERE nID='$_GET[id]'");
       
        }
       

mysql_close();

?>

Et finalement... le code HTML/PHP >>

if (isset($_SESSION['ACCESS']))
{
        if($_SESSION['ACCESS'] == 7 or ($_SESSION['ACCESS'] == 6 and
        strtoupper($result[nAuthor]) == strtoupper($_SESSION[AUTH])))
        {
        $editthis = $readpoint;
        $editperm = "
        Edit";
        $delperm = "Delete";
        $adminaccess = "onclick="editswitch('summary$result[nID]','$result[nID]');"";
        }
        else
        {
            $editperm = "";
            $delperm = "";
            $adminaccess = "";
        }
}
else
{
    $editperm = "";
    $delperm = "";
}
    $summary = addslashes($summary);
    $summary = stripslashes($summary);
    $summary = nbspcheck($summary);
    $summary = nl2br($summary);
   
    $showimg = imgexist($accesslvl['imagelink']);
    echo "

        <table cellpadding=0 cellspacing=0>
        <tr>
             <td colspan=2 style='border-right: 1px solid gray; border-left: 1px solid gray;' id='cadresignsmall' >
                 &nbsp; $result[nTitle]
            </td>
        </tr>
        <tr>
            <td style ='border: 1px solid gray;'>
                Author: $result[nAuthor]\n
            </td>
            <td rowspan=3 style='width: 100%; border-left: 1px solid gray; border-right: 1px solid gray;'>
               
$summary

                <textarea id='edit$result[nID]' style='font: 11px arial; height: 100%;
                border: 0px solid black; background: black;
                color: white; width: 100%; display:none;'
                onblur="postedit('edit$result[nID]','$result[nID]');">$summary</textarea>";

6 réponses

Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
22 juin 2008 à 13:17
Salut,

teste d'un côté si la page php qui est appelée fonctionne correctement. Ensuite teste pas à pas ton code javascript en n'oubliant pas de t'aider de la console d'erreurs de Firefox.

à+
0
l2woyo Messages postés 29 Date d'inscription samedi 30 avril 2005 Statut Membre Dernière intervention 4 octobre 2008
22 juin 2008 à 20:11
merci pour la réponse, j'ai fait comme suggéré, j'ai testé la page PHP indépendemment, j'avais bel et bien des erreurs et je les ai corrigés XD. Si j'écris la requête manuellement (celle que le AJAX est supposé envoyer) dans la barre d'adresse tout fonctionne correctement, et la console d'erreur firefox ne semble pas trouver d'embrouille... une idée qui pourrait causer problème? :s
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
22 juin 2008 à 20:19
Fais des alert( ) en javascript pour savoir ce que te répond la page et essaie de mettre des messages d'erreurs pour savoir à quel moment ta requête xmlhttp échoue, parce que je ne peux pas savoir comme ça d'où vient l'erreur.
à+
0
l2woyo Messages postés 29 Date d'inscription samedi 30 avril 2005 Statut Membre Dernière intervention 4 octobre 2008
22 juin 2008 à 21:05
http://hmquarters.com/index.php

voilà, account: asuka
password: lol

J'ai mis alert(text);

ligne d'avant -> var text = escape(document.getElementById(nom).innerHTML);

c'est vraiment bizarre en fait... c'est comme si ça prenait le text qu'il y avait dans la texte box AVANT le changement (blur)o.O, sans blague, j'y comprend que dalle XD
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
l2woyo Messages postés 29 Date d'inscription samedi 30 avril 2005 Statut Membre Dernière intervention 4 octobre 2008
22 juin 2008 à 21:06
Une fois connecté, tu n'as qu'à cliquer une fois sur une thread pour pouvoir changer le texte et tester...
0
djmmix Messages postés 152 Date d'inscription lundi 28 juillet 2003 Statut Membre Dernière intervention 29 avril 2009
1 août 2008 à 15:50
hum,si j'ai compris c'est normal AJAX ne marche que sur le coté CLIENT donc quand tu modifie la page sa n'apparait que sur la page en court mais en aucun cas sa modifie la page charger.donc tu te retrouve avec le texte charger avec la page.

dans ce cas envoie t'est donnée ajax dans une page php et fait un refresh de ta page pour voir le résultat.

 djmmix un programmeur fou
0
Rejoignez-nous