Avatar billede mini41 Nybegynder
16. juni 2004 - 20:38 Der er 10 kommentarer og
3 løsninger

Javascript i PHP kode ?

Jeg har forsøgt at includere noget java i mit php script, men det virker ikke.

Er der en der har en løsning ?

Javaen skal forhindre at formen bliver sendt, hvis teksten er mindre end 100 karakterer.



<SCRIPT LANGUAGE=javascript><!--

function Formcheck() {
    var miss = "";
 
        if (document.WEB.ptsconfirm.value.length < 100) {
            miss = "text here\n";
        }
               

        if (miss != "") {
            window.alert(miss)
            return false;
        }
    }

//-->
</SCRIPT>


<?
if (!defined('version')){
exit;}
global $_GET,$_SERVER,
            $HTTP_SESSION_VARS;
        $pasteinst=trim($pasteinst);

        if (!$_GET[startpos])
            {
            $_GET[startpos]=0;
            }

        if (!$HTTP_SESSION_VARS[ptslist])
            {
            $getclicks
                =@mysql_query('select * from ' . mysql_prefix . 'pts_ads where category like "'.$get.'" and ((run_quantity>signups  and run_type="signups") or (run_quantity>views and run_type="views") or run_type="ongoing" or (run_type="date" and run_quantity>='.mysqldate.'))');

            while ($setclicks=@mysql_fetch_array($getclicks))
                {
                list ($userchk)=@mysql_fetch_row(
                    @mysql_query('select username from ' . mysql_prefix . 'paid_signups_'.$setclicks[ptsid].' where username="'.$HTTP_SESSION_VARS[username].'"'));

                if ($userchk == $HTTP_SESSION_VARS[username])
                    {
                    $HTTP_SESSION_VARS[ptslist]['ID'.$setclicks[ptsid]]=1;
                    }
                }

            }
if ($HTTP_SESSION_VARS[ptslist]){
        foreach($HTTP_SESSION_VARS[ptslist] as $keyvalue => $value)
            {
            $keyvalue=substr($keyvalue,2,strlen($keyvalue)-2);
            $clicklist=$clicklist . 'ptsid!="'.$keyvalue.'" and ';

          } }
        $getrow
            =@mysql_query('select * from ' . mysql_prefix . 'pts_ads where category like "'.$get.'" and '.$clicklist.' ((run_quantity>signups  and run_type="signups") or (run_quantity>views and run_type="views") or run_type="ongoing" or (run_type="date" and run_quantity>='.mysqldate.')) order by vtype,value desc limit '.$_GET[startpos].',5');
        $backpos=$_GET[startpos];

        while ($row=@mysql_fetch_array($getrow))
            {
            $_GET[startpos]++;


                if ($row[image_url])
                    {
                    $width='';

                    $height='';

                    if ($row[img_width])
                        {
                        $width="width=$row[img_width]";
                        }

                    if ($row[img_height])
                        {
                        $height="height=$row[img_height]";
                        }

                    $row[site_url]
                        =str_replace("#USERNAME#", $HTTP_SESSION_VARS[username], $row[site_url]);
                    echo
                        '<table border=0 cellpadding=0 cellspacing=0 bgcolor=ffffff><form method=post name=WEB onsubmit=return Formcheck()><tr><td><a href=' . runner_url . '?REDIRECT=' . rawurlencode(
                        $row[site_url]). ' target=_pts><img src=' . runner_url . '?REDIRECT=' . rawurlencode($row[image_url]). ' alt="' . $row[alt_text] . '" ' . $width . ' ' . $height . ' border=0></a></td></tr><tr><td align=center><input type=hidden value=' . $row[ptsid] . ' name=ptsconfirm onsubmit="return Formcheck()"><input type=hidden name=pasteinstcode value='.md5($pasteinst).strlen($pasteinst).'><textarea name=ptsemail rows=4 cols=30>' . $pasteinst . '</textarea><br><input type=submit value="' . $submitbutton . '"></td></tr></form></table>';
                    }
                else
                    {
                    $row[html]=str_replace("#USERNAME#", $HTTP_SESSION_VARS[username], $row[html]);

                    echo "<table border=0 cellpadding=0 cellspacing=0><tr><td>$row[html]</td></tr><form method=post name=WEB onsubmit=return Formcheck()><tr><td align=center><input type=hidden value=$row[ptsid] name=ptsconfirm><textarea name=ptsemail rows=4 cols=30>$pasteinst</textarea><br><input type=submit value='$submitbutton'></td></tr></form></table>";
                    }

                $mdgroup="#" . substr(md5($row[category]), 0, 8). "#";
                $typemsg=$points;
                $amount=$row[value] / 100000;

                if ($row[vtype] == 'cash')
                    {
                    $typemsg=$cash;

                    $amount=$amount / $factor;
                    }

                echo $message . " " . $amount . " " . $typemsg . "<br><br>";
                @mysql_query ("update " . mysql_prefix . "pts_ads set views=views+1 where ptsid='$row[ptsid]'");
                }

        if (!$typemsg)
            {
            echo $notfound . "<br>";
            }
        else
            {
            echo "<br>";

            $page=$backpos / 5 + 1;

            if ($backpos - 5 >= 0)
                {
                $backpos=$backpos - 5;

                echo '<a href='.$_SERVER[PHP_SELF].'?startpos='.$backpos.'>'.$back.'</a>';
                }

            if ($_GET[startpos] / 5 == intval($_GET[startpos] / 5))
                {
                echo ' <a href='.$_SERVER[PHP_SELF].'?startpos='.$_GET[startpos].'>'.$forward.'</a>';
                }

            echo "<br><br><b>$page</b><br> ";
            }
       
return 1;
?>
Avatar billede coderdk Praktikant
16. juni 2004 - 20:45 #1
Generelt så brug " " omkring dine HTML properties, i.e.:

<form method="post" name="WEB" onsubmit="return Formcheck()">

Ellers ser det funktionen fin ud. Det lader til at du kommer til at have flere forms på din side med samme navn?
Avatar billede dorgbar Nybegynder
16. juni 2004 - 20:55 #2
ellers prøv at echo'e alt ikke php
Avatar billede jakoba Nybegynder
16. juni 2004 - 21:11 #3
Du skal huske at sige  return true;  når der ikke er nogen fejl.

        if (miss != "") {
            window.alert(miss)
            return false;        // formularen må ikke sendes
        } else {
            return true;        // formularen skal sendes
        }

det giver ingen mening at placere en onsubmit event i et <input felt
  <input type=hidden value=' . $row[ptsid] . ' name=ptsconfirm onsubmit="return Formcheck()">
men det er så det sted du har sat korrekte "-tegn som coderdk også nævner

din adresse i funktionen peger på kun EEN formular
    document.WEB.ptsconfirm.value.length
den som har  name="WEB" .  Men der er jo to formularer på siden der har det navn. så der går dit javeascript galt.
men feltet 'ptsconfirm' findes kun i den første formular så det er nok det du altid vil kikke på. Kald den anden formular noget andet (fx name="WEB2")

mvh JakobA
Avatar billede mini41 Nybegynder
16. juni 2004 - 22:38 #4
Hov, ja der er da en fejl jeg retter lige og prøver igen
Avatar billede mini41 Nybegynder
16. juni 2004 - 22:52 #5
Jeg har rettet til, men det virker stadig ikke.

Hvis der eks. er 20 karakterer i formen aktiveres SUBMIT stadig, SUBMIT må ikke aktiveres under 100 karakterer.

 
 

<SCRIPT LANGUAGE=javascript><!--

function Formcheck() {
    var miss = "";
 
        if (document.WEB.ptsconfirm.value.length < 100) {
            miss = "text here\n";
        }
               

        if (miss != "") {
            window.alert(miss)
            return false;
        }
    }

//-->
</SCRIPT>


<?
if (!defined('version')){
exit;}
global $_GET,$_SERVER,
            $HTTP_SESSION_VARS;
        $pasteinst=trim($pasteinst);

        if (!$_GET[startpos])
            {
            $_GET[startpos]=0;
            }

        if (!$HTTP_SESSION_VARS[ptslist])
            {
            $getclicks
                =@mysql_query('select * from ' . mysql_prefix . 'pts_ads where category like "'.$get.'" and ((run_quantity>signups  and run_type="signups") or (run_quantity>views and run_type="views") or run_type="ongoing" or (run_type="date" and run_quantity>='.mysqldate.'))');

            while ($setclicks=@mysql_fetch_array($getclicks))
                {
                list ($userchk)=@mysql_fetch_row(
                    @mysql_query('select username from ' . mysql_prefix . 'paid_signups_'.$setclicks[ptsid].' where username="'.$HTTP_SESSION_VARS[username].'"'));

                if ($userchk == $HTTP_SESSION_VARS[username])
                    {
                    $HTTP_SESSION_VARS[ptslist]['ID'.$setclicks[ptsid]]=1;
                    }
                }

            }
if ($HTTP_SESSION_VARS[ptslist]){
        foreach($HTTP_SESSION_VARS[ptslist] as $keyvalue => $value)
            {
            $keyvalue=substr($keyvalue,2,strlen($keyvalue)-2);
            $clicklist=$clicklist . 'ptsid!="'.$keyvalue.'" and ';

          } }
        $getrow
            =@mysql_query('select * from ' . mysql_prefix . 'pts_ads where category like "'.$get.'" and '.$clicklist.' ((run_quantity>signups  and run_type="signups") or (run_quantity>views and run_type="views") or run_type="ongoing" or (run_type="date" and run_quantity>='.mysqldate.')) order by vtype,value desc limit '.$_GET[startpos].',5');
        $backpos=$_GET[startpos];

        while ($row=@mysql_fetch_array($getrow))
            {
            $_GET[startpos]++;


                if ($row[image_url])
                    {
                    $width='';

                    $height='';

                    if ($row[img_width])
                        {
                        $width="width=$row[img_width]";
                        }

                    if ($row[img_height])
                        {
                        $height="height=$row[img_height]";
                        }

                    $row[site_url]
                        =str_replace("#USERNAME#", $HTTP_SESSION_VARS[username], $row[site_url]);
                    echo
                        '<table border=0 cellpadding=0 cellspacing=0 bgcolor=ffffff><form method=post><tr><td><a href=' . runner_url . '?REDIRECT=' . rawurlencode(
                        $row[site_url]). ' target=_pts><img src=' . runner_url . '?REDIRECT=' . rawurlencode($row[image_url]). ' alt="' . $row[alt_text] . '" ' . $width . ' ' . $height . ' border=0></a></td></tr><tr><td align=center><input type=hidden value=' . $row[ptsid] . ' name=ptsconfirm onsubmit="return Formcheck()"><input type=hidden name=pasteinstcode value='.md5($pasteinst).strlen($pasteinst).'><textarea name=ptsemail rows=4 cols=30>' . $pasteinst . '</textarea><br><input type=submit value="' . $submitbutton . '"></td></tr></form></table>';
                    }
                else
                    {
                    $row[html]=str_replace("#USERNAME#", $HTTP_SESSION_VARS[username], $row[html]);

                    echo "<table border=0 cellpadding=0 cellspacing=0><tr><td>$row[html]</td></tr><form method=post name=WEB onsubmit=return Formcheck()><tr><td align=center><input type=hidden value=$row[ptsid] name=ptsconfirm><textarea name=ptsemail rows=4 cols=30>$pasteinst</textarea><br><input type=submit value='$submitbutton'></td></tr></form></table>";
                    }

                $mdgroup="#" . substr(md5($row[category]), 0, 8). "#";
                $typemsg=$points;
                $amount=$row[value] / 100000;

                if ($row[vtype] == 'cash')
                    {
                    $typemsg=$cash;

                    $amount=$amount / $factor;
                    }

                echo $message . " " . $amount . " " . $typemsg . "<br><br>";
                @mysql_query ("update " . mysql_prefix . "pts_ads set views=views+1 where ptsid='$row[ptsid]'");
                }

        if (!$typemsg)
            {
            echo $notfound . "<br>";
            }
        else
            {
            echo "<br>";

            $page=$backpos / 5 + 1;

            if ($backpos - 5 >= 0)
                {
                $backpos=$backpos - 5;

                echo '<a href='.$_SERVER[PHP_SELF].'?startpos='.$backpos.'>'.$back.'</a>';
                }

            if ($_GET[startpos] / 5 == intval($_GET[startpos] / 5))
                {
                echo ' <a href='.$_SERVER[PHP_SELF].'?startpos='.$_GET[startpos].'>'.$forward.'</a>';
                }

            echo "<br><br><b>$page</b><br> ";
            }
       
return 1;
?>
Avatar billede mini41 Nybegynder
16. juni 2004 - 22:54 #6
Kunne man evt. lave det sådan at hvis teksten i input feltet er under 100 vises submit knappen ikke ?
Avatar billede coderdk Praktikant
17. juni 2004 - 01:19 #7
Kan dette eksempel bruges:

<html><head><title>test</title>
<script type="text/javascript">
    function over100()
    {
        return ( document.frm.txtfield.value.length >= 100 );
    }
    function chkForm()
    {
        document.frm.sbmit.disabled = !over100();
    }
</script><body><form name="frm" method="post" onsubmit="return over100();">
<textarea name="txtfield" onkeyup="chkForm()"></textarea>
<input type="submit" name="sbmit" value="Gem" disabled="disabled"></form></body></html>
Avatar billede mini41 Nybegynder
17. juni 2004 - 15:57 #8
Ja det vil jeg tro, men hvordan får jeg det sat ind i mit script ?
Avatar billede coderdk Praktikant
17. juni 2004 - 17:26 #9
Hvis du har flere forme så skal den ændres lidt, sådan:

<html><head><title>test</title>
<script type="text/javascript">
    function over100(item)
    {
        return ( item.value.length >= 100 );
    }
    function chkForm(item)
    {
        item.form.sbmit.disabled = !over100(item);
    }
</script><body><form name="frm" method="post" onsubmit="return over100(this);">
<textarea name="txtfield" onkeyup="chkForm(this)"></textarea>
<input type="submit" name="sbmit" value="Gem" disabled="disabled"></form></body></html>


På alle form's sætter du:

onsubmit="return over100(this)"

Og på dine textareas sætter du:

onkeyup="chkForm(this)"

Så burde det virke (du skal nok bruge unikke navne til dine forms)
Avatar billede coderdk Praktikant
17. juni 2004 - 17:26 #10
(i mit eksempel hedder submitknappen "sbmit" - men det kan du jo godt se)
Avatar billede mini41 Nybegynder
18. juni 2004 - 11:46 #11
Jeg har ændret scriptet, men nu er submit knappen altid disablet :)

Jeg kunne ikke bruge " i scriptet, måske det er fejlen, scriptet er pastet som det ser ud nu:

NB: Jeg har to forme, men det er kun en af dem der afvikles.


<script type="text/javascript">
    function over100(item)
    {
        return ( item.value.length >= 25 );
    }
    function chkForm(item)
    {
        item.form.submit.disabled = !over100(item);
    }
</script>

<?
if (!defined('version')){
exit;}
global $_GET,$_SERVER,
            $HTTP_SESSION_VARS;
        $pasteinst=trim($pasteinst);

        if (!$_GET[startpos])
            {
            $_GET[startpos]=0;
            }

        if (!$HTTP_SESSION_VARS[ptslist])
            {
            $getclicks
                =@mysql_query('select * from ' . mysql_prefix . 'pts_ads where category like "'.$get.'" and ((run_quantity>signups  and run_type="signups") or (run_quantity>views and run_type="views") or run_type="ongoing" or (run_type="date" and run_quantity>='.mysqldate.'))');

            while ($setclicks=@mysql_fetch_array($getclicks))
                {
                list ($userchk)=@mysql_fetch_row(
                    @mysql_query('select username from ' . mysql_prefix . 'paid_signups_'.$setclicks[ptsid].' where username="'.$HTTP_SESSION_VARS[username].'"'));

                if ($userchk == $HTTP_SESSION_VARS[username])
                    {
                    $HTTP_SESSION_VARS[ptslist]['ID'.$setclicks[ptsid]]=1;
                    }
                }

            }
if ($HTTP_SESSION_VARS[ptslist]){
        foreach($HTTP_SESSION_VARS[ptslist] as $keyvalue => $value)
            {
            $keyvalue=substr($keyvalue,2,strlen($keyvalue)-2);
            $clicklist=$clicklist . 'ptsid!="'.$keyvalue.'" and ';

          } }
        $getrow
            =@mysql_query('select * from ' . mysql_prefix . 'pts_ads where category like "'.$get.'" and '.$clicklist.' ((run_quantity>signups  and run_type="signups") or (run_quantity>views and run_type="views") or run_type="ongoing" or (run_type="date" and run_quantity>='.mysqldate.')) order by vtype,value desc limit '.$_GET[startpos].',5');
        $backpos=$_GET[startpos];

        while ($row=@mysql_fetch_array($getrow))
            {
            $_GET[startpos]++;


                if ($row[image_url])
                    {
                    $width='';

                    $height='';

                    if ($row[img_width])
                        {
                        $width="width=$row[img_width]";
                        }

                    if ($row[img_height])
                        {
                        $height="height=$row[img_height]";
                        }

                    $row[site_url]
                        =str_replace("#USERNAME#", $HTTP_SESSION_VARS[username], $row[site_url]);
                    echo
                        '<table border=0 cellpadding=0 cellspacing=0 bgcolor=ffffff><form method=post onsubmit=return over100(this);><tr><td><a href=' . runner_url . '?REDIRECT=' . rawurlencode(
                        $row[site_url]). ' target=_pts><img src=' . runner_url . '?REDIRECT=' . rawurlencode($row[image_url]). ' alt="' . $row[alt_text] . '" ' . $width . ' ' . $height . ' border=0></a></td></tr><tr><td align=center><input type=hidden value=' . $row[ptsid] . ' name=ptsconfirm><input type=hidden name=pasteinstcode value='.md5($pasteinst).strlen($pasteinst).'><textarea name=ptsemail rows=4 cols=30 onkeyup=chkForm(this)>' . $pasteinst . '</textarea><br><input type=submit value="' . $submitbutton . '" disabled=disabled></td></tr></form></table>';
                    }
                else
                    {
                    $row[html]=str_replace("#USERNAME#", $HTTP_SESSION_VARS[username], $row[html]);

                    echo "<table border=0 cellpadding=0 cellspacing=0><tr><td>$row[html]</td></tr><form method=post onsubmit=return over100(this);><tr><td align=center><input type=hidden value=$row[ptsid] name=ptsconfirm><textarea name=ptsemail rows=4 cols=30 onkeyup=chkForm(this)>$pasteinst</textarea><br><input type=submit value='$submitbutton' disabled=disabled></td></tr></form></table>";
                    }

                $mdgroup="#" . substr(md5($row[category]), 0, 8). "#";
                $typemsg=$points;
                $amount=$row[value] / 100000;

                if ($row[vtype] == 'cash')
                    {
                    $typemsg=$cash;

                    $amount=$amount / $factor;
                    }

                echo $message . " " . $amount . " " . $typemsg . "<br><br>";
                @mysql_query ("update " . mysql_prefix . "pts_ads set views=views+1 where ptsid='$row[ptsid]'");
                }

        if (!$typemsg)
            {
            echo $notfound . "<br>";
            }
        else
            {
            echo "<br>";

            $page=$backpos / 5 + 1;

            if ($backpos - 5 >= 0)
                {
                $backpos=$backpos - 5;

                echo '<a href='.$_SERVER[PHP_SELF].'?startpos='.$backpos.'>'.$back.'</a>';
                }

            if ($_GET[startpos] / 5 == intval($_GET[startpos] / 5))
                {
                echo ' <a href='.$_SERVER[PHP_SELF].'?startpos='.$_GET[startpos].'>'.$forward.'</a>';
                }

            echo "<br><br><b>$page</b><br> ";
            }
       
return 1;
?>
Avatar billede coderdk Praktikant
18. juni 2004 - 15:54 #12
Lav dine submitknapper om fra:

<input type=submit value="' . $submitbutton . '" disabled=disabled>

til:

<input type=submit name='sbmit' value="' . $submitbutton . '" disabled=disabled>


Og ændr javascript linien:

item.form.submit.disabled = !over100(item);

til:

item.form.sbmit.disabled = !over100(item);
Avatar billede mini41 Nybegynder
19. juni 2004 - 10:58 #13
Yes :-)

Det virkede, tusind tak for hjælpen og points til dig.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester