Avatar billede matz Nybegynder
31. oktober 2007 - 22:31 Der er 52 kommentarer

unexpected T_CONSTANT_ENCAPSED_STRING

Hvad går galt her:

<?php '<a href="java script:confirmDelete('. $array["id"] .'","\")" '. $array["overskrift"] .'");'>Slet'</a>'; ?>

java script:

function confirmDelete(overskrift,id)
{
var agree=confirm('Er du sikker på at du vil slette ? "'+overskirft+'"?');
if (agree)
    document.location.href='<a href="?page=listnyhed&slet=1&id='id;
else
    return ;
}

Fejl:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING
Avatar billede erikjacobsen Ekspert
31. oktober 2007 - 22:37 #1
Ja, du har kludder i dine ' og "
Avatar billede matz Nybegynder
31. oktober 2007 - 22:38 #2
Noget du vil tjekke igennem hvor det går galt?
Avatar billede erikjacobsen Ekspert
31. oktober 2007 - 22:39 #3
Måske (med en lille print også ...):

<?php print '<a href="java script:confirmDelete('. $array["id"] .'","\")" '. $array["overskrift"] .'");">Slet?</a>'; ?>
Avatar billede matz Nybegynder
31. oktober 2007 - 22:40 #4
selvfølgelig...jeg har sat echo ind, nu skriver den:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';'
Avatar billede matz Nybegynder
31. oktober 2007 - 22:41 #5
ok jeg brugte din kode og nu udskriver den teksten...men link ser sådan her ud:

java script:confirmDelete(9
Avatar billede matz Nybegynder
31. oktober 2007 - 22:43 #6
Tallet 9 som den finder er så dens id...Men den fungere ikke..
Avatar billede erikjacobsen Ekspert
31. oktober 2007 - 22:52 #7
Jamen, du må da selv kunne finde ud af dine ' og " - ikke - du har selv skrevet dem.

Men der er nok en " for meget og så'n, så prøv

<?php print '<a href="java script:confirmDelete('. $array["id"] .', \''. $array["overskrift"] .'\');">Slet?</a>'; ?>
Avatar billede nielle Nybegynder
31. oktober 2007 - 22:53 #8
Mit forslag:

<a href="confirmDelete('<?= $array["overskrift"] ?>', <?= $array["id"] ?>);">Slet</a>
Avatar billede matz Nybegynder
31. oktober 2007 - 22:55 #9
Ja selvfølgelig...Men man kan stirre sig blind :)

Nu udskriver den både id og overskrift, men når der trykkes på linket så sker der intet... Kigger jeg i fejlen står der:

Et objekt var ventet
Avatar billede matz Nybegynder
31. oktober 2007 - 22:56 #10
nielle din kode melder også fejl
Avatar billede matz Nybegynder
31. oktober 2007 - 22:57 #11
nielle dit link ser sådan her ud: http://localhost/prove/admin/confirmDelete('<?= $array[
Avatar billede nielle Nybegynder
31. oktober 2007 - 23:01 #12
Hvor kommer det der:

http://localhost/prove/admin

fra? For det er da ikke med i koden som den ser ud nu...
Avatar billede erikjacobsen Ekspert
31. oktober 2007 - 23:03 #13
Du har en noget alternativ stavemåde her: overskirft
Avatar billede matz Nybegynder
31. oktober 2007 - 23:04 #14
Det er mappen filerne ligger i...Burde det have en betydning når bare filerne ligger i samme mappe?
Avatar billede erikjacobsen Ekspert
31. oktober 2007 - 23:04 #15
Og denne linie, ikke helt kosher. Kan du ikke lige tage en tjek på javascript-fejl i din browser (FF anbefales)

    document.location.href='<a href="?page=listnyhed&slet=1&id='id;
Avatar billede erikjacobsen Ekspert
31. oktober 2007 - 23:05 #16
nielle: en href skal have "java script:" - i en onclick er dårlig karma ... ;)
Avatar billede matz Nybegynder
31. oktober 2007 - 23:09 #17
stavefejl rettet ;-)

Jeg bruger IE6... Kender ikke så meget til FF

Her kan du se fejlen: http://peecee.dk/?id=75964
Avatar billede nielle Nybegynder
31. oktober 2007 - 23:09 #18
Vi sætter den bare ind igen:

<a href="java script:confirmDelete('<?= $array["overskrift"] ?>', <?= $array["id"] ?>);">Slet</a>

:^)

Men for at det skulle give resultatet fra 31/10-2007 22:57:47 så er der et eller andet problem med at det er uklart, hvor der er PHP-kode og hvor der er HTML-kode. Du må derfor meget gerne vise noget mere af sammenhængen den lille kodestump indgår i.
Avatar billede matz Nybegynder
31. oktober 2007 - 23:12 #19
ok her er koderne:

index.php hvor jeg sætter js funktionen i <head> :

<?php include("tjek_logind.php");
include('connect.php');
session_start();
?>
<!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>
<link rel="stylesheet" type="text/css" href="style.css">
<script LANGUAGE=""JavaScript"" src=""jsfunc.js""></script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<table width="700" border="0" align="center" cellpadding="2">
  <tr>
    <td>
    <a href="?page=forside">Forside</a>   
    <hr>
  </tr>
  <tr>
    <td><?php
        switch($_GET['page'])
{
    case 'opretprodukt':
        include('opret_produkt.php');
        break;
       
    case 'opretbillede':
        include('opret_billede.php');
        break;
       
        case 'opretnyhed':
        include('opret_nyhed.php');
        break;
       
       
        case 'list':
        include('list.php');
        break;
       
        case 'listp':
        include('listp.php');
        break;
       
        case 'opretdesigner':
        include('opret_designer.php');
        break;
       
        case 'listprodukt':
        include('listprodukt.php');
        break;
       
        case 'redigerprodukt':
        include('redigerprodukt.php');
        break;
       
        case 'sletbillede':
        include('sletbillede.php');
        break;
       
        case 'listnyhed':
        include('listnyhed.php');
        break;
       
        case 'redigernyhed':
        include('redigernyhed.php');
        break;
       
        case 'listdesigner':
        include('listdesigner.php');
        break;
       
        case 'redigerdesigner':
        include('redigerdesigner.php');
        break;
       
        case 'logud':
        include('logud.php');
        break;
       
    case 'forside':
    default:
        include('forside.php');
        break;
}
    ?></td>

  </tr>
</table>

</body>
</html>

listnyhed.php :

<?php

require_once('connect2.php');


if($_GET['slet'] == '1')
{
    $test_2 = new sql();
    $test_2->connect();
    $test_2->q("DELETE FROM nyheder WHERE id='".$_GET['id']."'");
    $test_2->close();
    echo '<font size=1 face=Verdana color=#000000><b>Nyheden er nu slettet.</b></font>';
}

echo "<b>Vælg nyhed:</b><br><br>";
?>
<table class="table" width="600" border="0">
<tr>
      <td valign="top">   
  Rediger
      </td>
      <td valign="top">
      Slet
      </td>
    </tr>
<?php
$test_2 = new sql();
$test_2->connect();
$test_2->q("Select * from nyheder");
while($array = $test_2->a()){
?> 


    <tr>
      <td valign="top">   
  <?php echo '<a href="?page=redigernyhed&id='. $array["id"] .'">'. $array["overskrift"] .'</a>'; ?>
      </td>
      <td valign="top">
      <?php echo '<a href="?page=listnyhed&slet=1&id='. $array["id"] .'">'. $array["overskrift"] .'</a><br>'; ?>
      <?php print '<a href="java script:confirmDelete('. $array["id"] .', \''. $array["overskrift"] .'\');">Slet?</a>'; ?>
      </td>
    </tr>


<?php   
}
$test_2->close();
?>   
   
</table>
Avatar billede nielle Nybegynder
31. oktober 2007 - 23:14 #20
Nu havde jeg ellers pænt skrevet koden uden

<?php print  ... ?>

rundt om...
Avatar billede matz Nybegynder
31. oktober 2007 - 23:15 #21
nielle jeg copy/pastede din kode ind istedte for den anden kode da det var
Avatar billede nielle Nybegynder
31. oktober 2007 - 23:17 #22
Min kode er lagt om til at fungere uden den print. Selve udskrifterne ligger oinde i de to indlejrede <?= ... ?> blokke.
Avatar billede erikjacobsen Ekspert
31. oktober 2007 - 23:19 #23
Ja, nielle, der skal selvfølgelig byttes om på overskrift og id, når funktionen er defineret med de parametre. Men ellers er der bare lidt javascript-fejl i funktionen. Jeg kender ikke IE6 - så den må du selv bøvle med.
Avatar billede matz Nybegynder
31. oktober 2007 - 23:21 #24
nielle se fejlen her:

http://peecee.dk/?id=75966
Avatar billede nielle Nybegynder
31. oktober 2007 - 23:22 #25
Jeg kan desværre slet ikke tyde den der gnidrede grafik :^|
Avatar billede nielle Nybegynder
31. oktober 2007 - 23:23 #26
Men det er nu også mere interessant at se, hvordan du har rettet din kode efter at jeg skrev det i 31/10-2007 23:17:00.
Avatar billede matz Nybegynder
31. oktober 2007 - 23:24 #27
nielle ->

Okay men hvis du ser nede på statusbaren så er linket helt forkert der. Men kan du se javascript fejlen?
Avatar billede matz Nybegynder
31. oktober 2007 - 23:25 #28
Koden er den samme som ovenstående, jeg har bare sat dit ind istedte for erik's forslag.
Avatar billede nielle Nybegynder
31. oktober 2007 - 23:26 #29
Jeg kan lige tyde den ... det ser ikke ud som at du har rettet din kode efter hvad jeg skrev i 31/10-2007 23:17:00?

Der skal ikke være <?php print ... ?> rundt om min kodestump.
Avatar billede matz Nybegynder
31. oktober 2007 - 23:28 #30
Med din kode:

<?php

require_once('connect2.php');


if($_GET['slet'] == '1')
{
    $test_2 = new sql();
    $test_2->connect();
    $test_2->q("DELETE FROM nyheder WHERE id='".$_GET['id']."'");
    $test_2->close();
    echo '<font size=1 face=Verdana color=#000000><b>Nyheden er nu slettet.</b></font>';
}

echo "<b>Vælg nyhed:</b><br><br>";
?>
<table class="table" width="600" border="0">
<tr>
      <td valign="top">   
  Rediger
      </td>
      <td valign="top">
      Slet
      </td>
    </tr>
<?php
$test_2 = new sql();
$test_2->connect();
$test_2->q("Select * from nyheder");
while($array = $test_2->a()){
?> 


    <tr>
      <td valign="top">   
  <?php echo '<a href="?page=redigernyhed&id='. $array["id"] .'">'. $array["overskrift"] .'</a>'; ?>
      </td>
      <td valign="top">
      <?php echo '<a href="?page=listnyhed&slet=1&id='. $array["id"] .'">'. $array["overskrift"] .'</a><br>'; ?>
      <a href="java script:confirmDelete('<?= $array["overskrift"] ?>', <?= $array["id"] ?>);">Slet</a>

      </td>
    </tr>


<?php   
}
$test_2->close();
?>   
   
</table>
Avatar billede matz Nybegynder
31. oktober 2007 - 23:28 #31
Sådan satte jeg den ind.
Avatar billede erikjacobsen Ekspert
31. oktober 2007 - 23:28 #32
"Koden er den samme som ovenstående, jeg har bare sat dit ind istedte for erik's forslag." - det kan vi ikke bruge til noget. Vis den præcise kode du anvender, hvis du skal have hjælp.
Avatar billede nielle Nybegynder
31. oktober 2007 - 23:29 #33
Det er korrekt :^)
Avatar billede matz Nybegynder
31. oktober 2007 - 23:30 #34
Den er skrevet :)
Avatar billede erikjacobsen Ekspert
31. oktober 2007 - 23:31 #35
Ja, det var bedre. Prøv at erstatte  <?= noget?>  med <?php print noget;?>  hvor du udskifter "noget" på passende vis.
Avatar billede matz Nybegynder
31. oktober 2007 - 23:33 #36
Nu skriver den det samme som din Erik og melder samme fejl "Et objekt var ventet":

<?php

require_once('connect2.php');


if($_GET['slet'] == '1')
{
    $test_2 = new sql();
    $test_2->connect();
    $test_2->q("DELETE FROM nyheder WHERE id='".$_GET['id']."'");
    $test_2->close();
    echo '<font size=1 face=Verdana color=#000000><b>Nyheden er nu slettet.</b></font>';
}

echo "<b>Vælg nyhed:</b><br><br>";
?>
<table class="table" width="600" border="0">
<tr>
      <td valign="top">   
  Rediger
      </td>
      <td valign="top">
      Slet
      </td>
    </tr>
<?php
$test_2 = new sql();
$test_2->connect();
$test_2->q("Select * from nyheder");
while($array = $test_2->a()){
?> 


    <tr>
      <td valign="top">   
  <?php echo '<a href="?page=redigernyhed&id='. $array["id"] .'">'. $array["overskrift"] .'</a>'; ?>
      </td>
      <td valign="top">
      <?php echo '<a href="?page=listnyhed&slet=1&id='. $array["id"] .'">'. $array["overskrift"] .'</a><br>'; ?>
      <a href="java script:confirmDelete('<?php print $array["overskrift"] ?>', <?php print $array["id"] ?>);">Slet</a>

      </td>
    </tr>


<?php   
}
$test_2->close();
?>   
   
</table>
Avatar billede erikjacobsen Ekspert
31. oktober 2007 - 23:35 #37
Så skal du bare rette dine javascript fejl. Det er 3.45 gange lettere i FF - men det må du jo selv om ;)
Avatar billede nielle Nybegynder
31. oktober 2007 - 23:35 #38
Du kan jo starte med at vise den her.
Avatar billede erikjacobsen Ekspert
31. oktober 2007 - 23:40 #39
Din javascript funktion fra spørgsmålet trænger til 31/10-2007 23:03:26 og 31/10-2007 23:04:44
Avatar billede matz Nybegynder
31. oktober 2007 - 23:40 #40
Jeg installer FF imorgen tidlig så også poster jeg fejlen ind her. Vil smutte i seng nu :)
Avatar billede nielle Nybegynder
31. oktober 2007 - 23:42 #41
Nighty' :^)
Avatar billede erikjacobsen Ekspert
31. oktober 2007 - 23:48 #42
Ja, ok, men prøv FF og oplev i fejlkonsollen, hvorledes det faktisk er muligt - ofte - at give meningsfulde fejlbeskeder. Måske lidt overdrevet, men fornemmelsen er at Microsofts produkter altid kommer med "Der er en fejl (ja, vi ved mere om hvor fejlen er , og hvad den skyldes, men det vil vi ikke besvære dig med)". Kan man leve med det, så skal jeg blande mig udenom.

Egentlig skulle du prøve selv, men lad mig komme med et bud til din funktion:

function confirmDelete(overskrift,id)
{
var agree=confirm('Er du sikker på at du vil slette ? "'+overskrift+'"?');
if (agree)
    document.location.href='dinfil.php?page=listnyhed&slet=1&id='+id;
}

Det er rimeligt avencerede ting du kaster dig ud, når du tilsyneladende ikke ved så meget om de programmeringsmæssige ting bagved. Hvad med at øve dig på simplere ting først?
Avatar billede erikjacobsen Ekspert
31. oktober 2007 - 23:49 #43
Ups, ja, udskift "dinfil.php" med dit rigtige navn på dit script.
Avatar billede matz Nybegynder
01. november 2007 - 08:32 #44
Ja det er rimelig store ting. Jeg har installeret FF nu og den siger i fejlkonsol:

Fejl: confirmDelete is not defined
Kildefil: java script:confirmDelete('Montana / Bang & Olufsen arrangement i butikken i ', 9);
Linje: 1
Avatar billede erikjacobsen Ekspert
01. november 2007 - 08:36 #45
Så er der fejl i confirmDelete, eller den er slet ikke defineret.
Avatar billede matz Nybegynder
01. november 2007 - 08:57 #46
Ja måske er det for store ting til mig på nuværende tidspunkt, da jeg ikke ved så meget om javascript... Så er det vel nemmere med en almindelig onclick alert box.
Avatar billede erikjacobsen Ekspert
01. november 2007 - 10:17 #47
Men hvordan ser din kode ud nu?
Avatar billede nielle Nybegynder
01. november 2007 - 18:30 #48
Det er vel specielt interessant at få at vide hvor confirmDelete() kommer fra... Er den defineret på siden (jeg kan ikke se den i de kodeeksempler du har postet), eller er den i en js-fil som inkluderes?
Avatar billede matz Nybegynder
02. november 2007 - 08:36 #49
Det er en include fra js-filen... Den er includet i head.
Avatar billede matz Nybegynder
02. november 2007 - 08:38 #50
Men jeg tror hellere jeg må holde mig til den mere enkle løsning på nuværende tidspunkt også rode lidt med det andet.

Jeg har brugt den her nu:

<a onclick="return confirm('Vil du slette');"
Avatar billede nielle Nybegynder
02. november 2007 - 17:57 #51
Fejlbeskeden lyder eller som om at funktionen slet ikke kan findes...

Har du et link hvor man kan se det i funktion?
Avatar billede nielle Nybegynder
12. november 2007 - 18:55 #52
Hvad med lidt respons?
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