Avatar billede JeppeHansen Nybegynder
22. oktober 2015 - 12:43 Der er 5 kommentarer

PHP i Java

Hej derude.
Før i tiden kunne jeg bare sætte følgende PHP-kode ind i mit javascript, men nu virker det pludseligt ikke... så mit spørgsmål er:
Hvordan får jeg følgende PHP...

<?

    {
        echo "<b>" . $row['overskrift'] . "</b> - " . $row['dato'] . "<br><b>Skrevet af</b> " . $row['forfatter'] . "<br>";
        echo "" . $row['tekst'] . "<br><br>";
    }
?>

... sat ind ved tallet 1 i følgende javascript?

<script type="text/javascript">
var aTexts
    = [    "1",
        "2"];
function showText(nInx) {
    document.getElementById("linkinfo").innerHTML = aTexts[nInx];
}
function hideText() {
 
    document.getElementById("linkinfo").firstChild.nodeValue = "\u00a0";
}
</script>

a onclick="showText(0)" class="difcursor">1</a>
a onclick="showText(1)" class="difcursor">2</a>

På forhånd tak.
Avatar billede olsensweb.dk Ekspert
22. oktober 2015 - 13:10 #1
du starter med ikke at bruge short_open_tag, de er slået fra pr default på nyere installastioner af php

php filen

<?php
// test data
$row['overskrift'] = "test";
$row['dato'] = "2015-10-22";
$row['forfatter']="ronols";
$row['tekst']="hallo wold";
?>

<script type="text/javascript">
var aTexts
= [<?php
echo "<b>" . $row['overskrift'] . "</b> - " . $row['dato'] . "<br><b>Skrevet af</b> " . $row['forfatter'] . "<br>";
echo "" . $row['tekst'] . "<br><br>";
?>
,
        "2"];
function showText(nInx) {
    document.getElementById("linkinfo").innerHTML = aTexts[nInx];
}
function hideText() {

    document.getElementById("linkinfo").firstChild.nodeValue = "\u00a0";
}
</script>
Avatar billede JeppeHansen Nybegynder
22. oktober 2015 - 13:31 #2
Undskyld.

PHP-koden ser således ud, glemte lige åbningen af databasen, som skal med.
Den skal køre alle rækker i databasen igennem.

<?
    $query = mysql_query("SELECT * FROM nyheder ORDER BY dato DESC");
    while($row = mysql_fetch_assoc($query))

    {
        echo "<b>" . $row['overskrift'] . "</b> - " . $row['dato'] . "<br><b>Skrevet af</b> " .       $row['forfatter'] . "<br>";
        echo "" . $row['tekst'] . "<br><br>";
    }
?>

Der kommer ikke nogen fejl-meldning, når jeg sætter den ind på pladsen, hvor der står 1, men jeg kan til gengæld virker onclick ikke.
Avatar billede olsensweb.dk Ekspert
22. oktober 2015 - 14:18 #3
>Der kommer ikke nogen fejl-meldning,
så har du ikke slået error_reporting og display error til.
ref http://php.net/manual/en/errorfunc.configuration.php
http://php.net/manual/en/function.error-reporting.php
http://php.net/manual/en/errorfunc.configuration.php#ini.display-errors

du skulle have fået mindst 1 error
ref http://php.net/manual/en/function.mysql-connect.php

Warning
This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include:



Changelog
Version     Description
5.5.0     This function will generate an E_DEPRECATED error.

jf https://wiki.php.net/todo/php70#timetable bliver php ver 7 frigivet Nov 12 2015

du anvender stadig short_open_tag, lav det om til std tag (dvs <? laves om til <?php), og prøv at indsætte det istedet for min code.

(utested, gider ikke teste code med det gamle mysql API)

<script type="text/javascript">
var aTexts
= [<?php
$query = mysql_query("SELECT * FROM nyheder ORDER BY dato DESC");
    while($row = mysql_fetch_assoc($query))
    {
        echo "<b>" . $row['overskrift'] . "</b> - " . $row['dato'] . "<br><b>Skrevet af</b> " .      $row['forfatter'] . "<br>";
        echo "" . $row['tekst'] . "<br><br>";
    }
?>,
        "2"];
function showText(nInx) {
    document.getElementById("linkinfo").innerHTML = aTexts[nInx];
}
function hideText() {

    document.getElementById("linkinfo").firstChild.nodeValue = "\u00a0";
}
</script>

1) hvordan forvendter du dit javascript array skal se ud, med data fra php ??
2) se det sådan ud ??
tror der mangler et komma inde i din while løkke, men det vil ovenstående 2 spm svare på


>men jeg kan til gengæld virker onclick ikke.
hvad forvendter du skal ske ??
http://www.w3schools.com/html/html_links.asp
http://stackoverflow.com/questions/7347786/html-anchor-tag-with-javascript-onclick-event
http://stackoverflow.com/questions/1346043/html-anchor-link-href-and-onclick-both
Avatar billede JeppeHansen Nybegynder
22. oktober 2015 - 15:22 #4
Jeg prøver lige igen.

Denne kode virker fint, når den ikke er skrevet ind i et Javascript. (Du nævnte et kolon, som mangler i whilesætningen - det gør der ikke, så virker koden ikke):
_____

<?php

    $query = mysql_query("SELECT * FROM nyheder ORDER BY dato DESC");
    while($row = mysql_fetch_assoc($query))


    {
        echo "<b>" . $row['overskrift'] . "</b> - " . $row['dato'] . "<br><b>Skrevet af</b> " . $row['forfatter'] . "<br>";
        echo "" . $row['tekst'] . "<br><br>";
    }
?>

_____
Når jeg sætter den ind i følgende Javascript, virker scriptet ikke.
_____

<script type="text/javascript">
var aTexts
    = [    "<?php

    $query = mysql_query("SELECT * FROM nyheder ORDER BY dato DESC");
    while($row = mysql_fetch_assoc($query))


    {
        echo "<b>" . $row['overskrift'] . "</b> - " . $row['dato'] . "<br><b>Skrevet af</b> " . $row['forfatter'] . "<br>";
        echo "" . $row['tekst'] . "<br><br>";
    }
?>",
        "1",
        "2",
        "3"];
function showText(nInx) {
    document.getElementById("linkinfo").innerHTML = aTexts[nInx];
}
function hideText() {
 
    document.getElementById("linkinfo").firstChild.nodeValue = "\u00a0";
}
</script>


Når man trykker på 0 skal nyhederne komme frem, når man trykker på 1 skal noget andet komme frem osv.

_____
<a onclick="showText(0)" class="difcursor">0
<a onclick="showText(1)" class="difcursor">1
<a onclick="showText(2)" class="difcursor">2
<a onclick="showText(3)" class="difcursor">3
_____

Mit spørgsmål er, hvordan får jeg PHP-koden ind i Javascriptet, så både script virker (som virker fint uden for scriptet) og PHP virker :-)
Avatar billede olsensweb.dk Ekspert
22. oktober 2015 - 20:01 #5
>Når jeg sætter den ind i følgende Javascript, virker scriptet ikke.
prøv at lav en vis kode i browseren, så burde du se fejlen, (syntax fejl)

ellers lig den online, og kom med et link

brug udviklings værktøjer til din browser, kommer frem ved at trykke på F12
keysersoze har skreve noget om det her
http://www.web-dev.dk/post/2012/06/17/Bliv-en-hurtigere-webudvikler-med-browserv230;rkt248;jer.aspx
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