[PHP & JS] Value textarea veranderen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Elwin - Fratsloos

Elwin - Fratsloos

30/08/2004 21:38:00
Quote Anchor link
Beste PHP'ers,

Ik snap het even niet meer. Ik laat door middel van het veranderen van een select[1] de inhoud van enkele formuliervelden door JavaScript aanpassen.

Zoiets:
<script type="text/javascript">
function setOptions(chosen) {
var selbox = document.maakbericht.elements['ber_aan[]'];

selbox.options.length = 0;
if (chosen == "0") {
selbox.options[selbox.options.length] = new Option('Kies eerst een incident',' ');
}
else if (chosen == "1") {
selbox.options[selbox.options.length] = new Option('Allemaal','allemaal');
selbox.options[selbox.options.length] = new Option('Eigen regio','regio');
selbox.options[selbox.options.length] = new Option('Eigen dienst','dienst');
selbox.options[selbox.options.length] = new Option('Naam2, Functie2','2');
selbox.options[selbox.options.length] = new Option('Naam3, Functie3','3');
document.maakbericht.inc_srt_inc_naam.value = 'Wegongeval (meerdere voertuigen)';
document.maakbericht.inc_datum.value = '30-08-2004';
document.maakbericht.inc_tijd.value = '08:21';
document.maakbericht.inc_beschrijving.value = 'Schoolbus gekanteld na botsing vrachtwagen.

Nabij de Koni';
}
// Etc.
</script>

Nu wordt het gedeelte vanaf if (chosen == "1") voor elke record die ik uit de DB haal neergezet. Hierbij zijn de gegevens natuurlijk anders.

De laatste formulierwaarde in dit voorbeeld wat veranderd moet worden is een textarea. Zoals je weet kan de waarde van een textarea uit meerdere regels bestaan.

Maar daar gaat de JS helemaal fout... Die kan voor die value geen meerdere regels aan (zoals het voorbeeld). Dit heb ik getest door de tekst in te korten naar 1 regel.

Nu kan je natuurlijk zeggen, hou het dan op 1 regel, maar dat wil ik niet. Mijn vraag is daarom, hoe kan ik, mbv PHP de var die die tekst print ($incident[5]) zo krijgen dat die de nieuwe regels niet maakt, maar dat het er wel goed uitziet in de textarea?

[1] De select is zo:
<select name="ber_inc_id" onchange="setOptions(document.maakbericht.ber_inc_id.options[document.maakbericht.ber_inc_id.selectedIndex].value);">

Alvast bedankt,
Elwin
 
PHP hulp

PHP hulp

15/01/2025 19:02:49
 
Rick

Rick

31/08/2004 01:29:00
Quote Anchor link
javascript kan wel newlines aan, maar niet op die manier
alles moet op dezelfde regel
met \n kan je een nieuwe regel neerzetten, voorbeeld:
<textarea id="test">

Edit:

de oplossing met php is dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? $text = str_replace("\n",'\n',$text); ?>
Gewijzigd op 31/08/2004 01:30:00 door Rick
 
Elwin - Fratsloos

Elwin - Fratsloos

31/08/2004 09:04:00
Quote Anchor link
Maar hoe krijg ik dan alles op 1 regel? Met jouw snippet lukt dat ook niet. Hij geeft het nu wel weer met \n, maar het staat nog steeds op meerdere regels:

document.maakbericht.inc_beschrijving.value = 'Schoolbus gekanteld na botsing vrachtwagen.
\n
\nNabij de Koni.';

Cheers,
Elwin
 
Elwin - Fratsloos

Elwin - Fratsloos

31/08/2004 13:31:00
Quote Anchor link
Sorry mensen, even een schupske de goeie richting in.. ;)

Elwin
 
Mitch X

Mitch X

31/08/2004 13:53:00
Quote Anchor link
Mss kun je hier wat mee :)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
# Alles in een arraytje zetten
$text = explode("\n", $text);

# Ff alles nalopen
for($i = 1; $i =< count($text); $i++)
{

   $text[$i] = str_replace("\r", "", $text[$i]);
   $text[$i] = str_replace(" ", "", $text[$i]);
}


# Nu netjes imploden
$text = implode("\n", $text);
?>
 
Bram Z

Bram Z

31/08/2004 14:01:00
Quote Anchor link
Kheb hier ff iets geprobeerd weet niet of het werkt:

dit zet je op de plaats van:

document.maakbericht.inc_beschrijving.value = 'Schoolbus gekanteld na botsing vrachtwagen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$invoer
="Schoolbus gekanteld na botsing vrachtwagen.

Nabij de Koni"
;//moet je zelf maar aanpassen
$invoer_js=explode('
'
, $invoer);
$count=count($invoer_js);
for($i=0;$i<$count;$i++){
if($i==0){
echo "document.maakbericht.inc_beschrijving.value = ".$invoer_js[$i]."\n";
}

else{
echo "document.maakbericht.inc_beschrijving.value+= ".$invoer_js[$i]."\n";
}
}

?>


laat mij iets weten
Gewijzigd op 31/08/2004 14:02:00 door Bram Z
 
Bram Z

Bram Z

31/08/2004 14:05:00
Quote Anchor link
Ow deze gaat niet werken deze wel:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$invoer
="Schoolbus gekanteld na botsing vrachtwagen.

Nabij de Koni"
;//moet je zelf maar aanpassen
$invoer_js=explode('
'
, $invoer);
$count=count($invoer_js);
for($i=0;$i<$count;$i++){
if($i==0){
echo "document.maakbericht.inc_beschrijving.value = \"".$invoer_js[$i]."\"\n";
}

else{
echo "document.maakbericht.inc_beschrijving.value+= \"\\n".$invoer_js[$i]."\"\n";
}
}

?>
 
Elwin - Fratsloos

Elwin - Fratsloos

31/08/2004 14:52:00
Quote Anchor link
Bedankt voor jullie bijdragen!

Even het testrapport.. :D

De code van Mitch geeft een foutmelding op de vergelijking in de for(). =< mag niet. Als ik het verander naar <= krijg ik deze foutmelding:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 35 bytes) in /var/www/test.propane.nl/html/acdl/bericht.php on line 809
Nie werk nie dus.

Als ik het op gelijk aan laat controleren (==) dan krijg ik ook die foutmelding, maar dan pas als er met een beschrijving van 1 regel wordt gewerkt...

Als ik het op alleen kleiner dan controleer krijg ik geen foutmelding, maar is de output als volgt:

document.maakbericht.inc_beschrijving.value = 'Schoolbus gekanteld na botsing vrachtwagen.

NabijdeKoni.';

En zie dan NabijdeKoni... zonder spaties.. :S

Goed.. dan die (tweede) van D@rk. Deze werkt! Cheers! :D

Ik dacht eerst dat die niet werkte. Toen ik hem na een tijdje toch nog voor de tweede keer testte werkte die wel. Wat was het nou? Ik had de code met Tabjes naar rechts verplaatst en toen was die explode() niet goed meer...

Ipv $invoer te gebruiken heb ik natuurlijk gelijk $incident[5] in de explode() gedaan. Werkt goed. De bron is als volgt geworden hierdoor:

document.maakbericht.inc_beschrijving.value = "Schoolbus gekanteld na botsing vrachtwagen."
document.maakbericht.inc_beschrijving.value+= "\n"
document.maakbericht.inc_beschrijving.value+= "\nNabij de Koni."

Precies goed dus.. :D

Iedereen bedankt!

Elwin
 
Bram Z

Bram Z

31/08/2004 14:56:00
Quote Anchor link
Ja je mogt geen tabjes gebruiken bij explode :p
 
Elwin - Fratsloos

Elwin - Fratsloos

31/08/2004 15:00:00
Quote Anchor link
Kom je nu mee.. ;)

Elwin (helemaal blij dat het werkt)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.