Avatar billede SimonBStoevring Nybegynder
18. juni 2009 - 16:35 Der er 4 kommentarer og
1 løsning

Form med target frame post PHP

Hej.

Jeg prøver i en formular at sætte target til en iframe og poste noget dertil med method sat til post.

I formularen har jeg et PHP dokument, som skal tjekke, om der er blevet skrevet noget og hvis der er, skal den tilføje det der er blevet skrevet til et div i parent.

Koden ser sådan ud:

--------------------------------------------------------------------------------------------
include "respond.php";

if($_POST['message']) {

    $numselects=0;

    session_start();

    $myuniqueid=session_id();


    $botresponse=replybotname($_POST['message'],$myuniqueid,"TestBot");


    echo "<script type=\"text/javascript\">
    parent.document.getElementById('chat').innerHTML += '<br /><b>You say:</b> ".$_POST['message']."<br /><b>Elisabeth says:</b> ".$botresponse->response."';
    parent.document.getElementById('message').value = '';
    </script>";
}
--------------------------------------------------------------------------------------------

Mit problem er, at det ikke er altid der sker noget, når man prøver at poste noget, men jeg kan ikke finde ud af, hvornår den vil og hvornår den ikke vil.

Kan nogen hjælpe mig med at rette fejlen?

I kan prøve at skrive et par tilføldige sætninger på nedenstående side,  så vil I hurtigt opleve fejlen.

http://snuzzer.dk/elisabeth/

På forhånd tak.
Simon B. Støvring
Avatar billede ebusiness Nybegynder
18. juni 2009 - 17:52 #1
En del af svarene bliver afsluttet med et linjeskift, derfor kommer det sidste ' først på de følgende linje, og JavaScriptet fejler altså pga. en ikke termineret streng konstant.
Avatar billede SimonBStoevring Nybegynder
18. juni 2009 - 17:57 #2
Ah, det giver mening. Er der en måde, jeg kan rette det, når $botresponse->response bliver udprintet?
Avatar billede ebusiness Nybegynder
18. juni 2009 - 18:05 #3
Kopieret direkte fra et eksempel på php.net:

// Order of replacement
$str    = "Line 1\nLine 2\rLine 3\r\nLine 4\n";
$order  = array("\r\n", "\n", "\r");
$replace = '<br />';
// Processes \r\n's first so they aren't converted twice.
$newstr = str_replace($order, $replace, $str);

Jeg går ud fra at du er bedre til Java og AIML end PHP.
Avatar billede ebusiness Nybegynder
18. juni 2009 - 18:11 #4
Du har i øvrigt også problemer med uescapede ' i svarene, så du skal lige udskifte ' med \'.
Avatar billede SimonBStoevring Nybegynder
18. juni 2009 - 18:34 #5
Mange tak skal du have.
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