javascript + PHP/SQL

Discussion dans 'Web, design' créé par KAMI, 13 Février 2008.

Statut de la discussion:
Fermée.
  1. Offline
    KAMI spim spam spoum
    Bonjour bonjour :-D

    J'ai comme qui dirait un petit problème avec mon site internet :p.


    Voila un code javascript qui permet de faire défiler le texte de bas en haut. Je ne rencontre pas de problème avec ce code. Mais plutôt avec la page que j'inclus dans le code.
    PHP:
        <script language="Javascript1.2">
        var marqueecontents='<?php include('affnew.php'?>'
        if (document.all)
            document.write('<marquee direction="up" scrollAmount=3 style="width:267px;height:460px;border:1px black solid">'+marqueecontents+'</marquee>')

        function regenerate(){
            window.location.reload()
        }
        function regenerate2(){
            if (document.layers){
                setTimeout("window.onresize=regenerate",450)
        intializemarquee()
            }
        }        

        function intializemarquee(){
        document.cmarquee01.document.cmarquee02.document.write(marqueecontents)
        document.cmarquee01.document.cmarquee02.document.close()
        thelength=document.cmarquee01.document.cmarquee02.document.height
        scrollit()
        }

        function scrollit(){
            if (document.cmarquee01.document.cmarquee02.top>=thelength*(-1)){
                document.cmarquee01.document.cmarquee02.top-=speed
                setTimeout("scrollit()",100)
            }
            else{
                document.cmarquee01.document.cmarquee02.top=marqueeheight
                scrollit()
            }
        }

        window.onload=regenerate2
        </script>
    Voici donc la page que je veux inclure: Comme vous pouvez le voir, j'ai appel à ma requête SQL ( idnews, titre, previsu). les 2 premiers marchent sans problèmes tandis que quand je mets le 3ème, mon script ne marchent plus du tout... Je n'ai plus rien qui s'affiche même pas le border qui définissent la taille du cadre de mon script.
    PHP:
    <?php

        $query1
    ="SELECT * FROM news WHERE idnews=21";
        
    $reponse1=mysql_query($query1) or die ("La requête \"$query1\"n'a pas pu s'exécutée");
            echo(
    '<table border="1">');
                while(
    $donnees1=mysql_fetch_assoc($reponse1)){
                    echo(
    '<tr>');
                        echo(
    '<td width="250px"><a href="index.php.php?idnews='.$donnees1['idnews'].')"><span class="titre">'.$donnees1['titre'].'</span></a><br/>'.$donnees1['previsu'].'</td>');
                    echo(
    '</tr>');
                }
            echo(
    '</table>');
    ?>
    Ou qu'il est le problème avec mon code ? :dead: :-'
    KAMI, 13 Février 2008
    #1
  2. Offline
    Bartdude Touriste
    Essaie en retirant l'include, avec juste une chaine de caractères dans ton javascript pour marqueecontents.

    Aussi je sais pas mais on dirait quand-même qu'il manque un paquet de ";" à la fin de tes lignes PhP ou surtout Javascript.

    Si ton code marche bien quand tu retires l'include, teste la page d'include toute seule... es-tu sur qu'elle renvoie bien de l'info ?
    Bartdude, 13 Février 2008
    #2
  3. Offline
    KAMI spim spam spoum
    Bon bon après bataille, je crois que j'ai réussi à isoler le problème même si je ne sais toujours pas comment le résoudre. Le problème ne viendrait pas du code en lui même mais plutôt des requêtes SQL. Car certaine petit phrase passe sans problème tandis que d'autre c'est niet.

    Quels sont les caractères qui sont interdits en JS ? :-D
    KAMI, 13 Février 2008
    #3
  4. Offline
    Tifox ou pas
    En JS, fait surtout gaffe aux apostrophes et/ou au guillemets : si ta chaine est encadrée par des apostrophe et qu'il y a une apostrophe dedans, ça va foirer. Idem pour les guillemets.

    Pour les requetes SQL, la c'est les apostrophes qui peuvent poser problème.
    Tifox, 13 Février 2008
    #4
  5. Offline
    KAMI spim spam spoum

    Effectivement, je recontre le problème quand il y a des ' "dans mon textarea. Que puis je faire pour résoudre le problème ?

    Il y a donc un problème au niveau des caractères spéciaux qui sont passés au code JS.

    Il n'y a pas une fonction pour formater ce genre de caractères ?
    KAMI, 13 Février 2008
    #5
  6. Offline
    Tifox ou pas
    Il faut échapper ' ou ", c'est a dire rajouter un \ devant.

    En php, il existe une fonction qui fait ça (je n'arrive pas a retomber sur le nom :oops: ), par contre, en JS de base, je ne pense pas que ça existe (mais il existe des fonctions pour modifier/remplacer des caractère dans une chaine).

    EDIT : c'est addslashes en php la fonction
    Tifox, 13 Février 2008
    #6
  7. Offline
    KAMI spim spam spoum
    En effet c'est en rapport à la chaine de caractère qui vient de ma base de données que le problème se situe.

    J'essaye de formater ma chaine mais je rencontre quelques petits soucis on va dire :p

    PHP:

    $cutted
    =substr($_POST['contenunew'], 015);
    $addpoint=$cutted."..";
    $addbr=nl2br($addpoint);
    $format=ereg_replace('<br />''\n'$addbr);
    $previsu=addslashes($format);
    J'ai l'impression que c'est la fonction addslashes qui ne marche pas correctement

    C'est $previsu que je place dans ma base de données.
    KAMI, 14 Février 2008
    #7
Statut de la discussion:
Fermée.