Dag mensen,

Ik genereer een tabel met nieuwsberichten, deze komen uit de database. In elke tabelrij gooi ik een button, om de data te kunnen bewerken. Dit doe ik d.m.v. een modal. Het ziet er nu als volgt uit :


echo '<td><button class="btn btn-default" onclick="editNews(' . $ni['news_id'] . ')">Bewerken</td>';


function editNews(id) {
                $('#myModal').modal('show');
                $('#hiddennewsid').val(id);
            }


<!-- Modal -->
        <div id="myModal" class="modal fade" role="dialog">
            <div class="modal-dialog">

                <!-- Modal content-->
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal">&times;</button>
                        <h4 class="modal-title">Nieuws aanpassen</h4>
                    </div>
                    <div class="modal-body">
                        <form class="form-horizontal" method="POST">
                            <div class="form-group">
                                <label class="col-sm-2 col-sm-2 control-label">Onderwerp</label>
                                <div class="col-sm-10">
                                    <input type="text" class="form-control" id="subject">
                                </div>
                            </div>
                            <div class="form-group">
                                <label class="col-sm-2 col-sm-2 control-label">Nieuwsbericht (max 500 tekens)</label>
                                <div class="col-sm-10">
                                    <textarea required rows = "6" style="min-width: 100%" id="content"></textarea>
                                </div>
                            </div>
                            <input type="hidden" value="" id="hiddennewsid" name="newsid">
                        </form>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-default" data-dismiss="modal" onclick="edit_news_handle()">Bijwerken</button>
                    </div>
                </div>

            </div>
        </div>


Dit zijn de onderdelen, nu wil ik graag de tekstinputs in het modal aanvullen. Dit wil ik doen op de volgende manier;


echo '<td><button class="btn btn-default" onclick="editNews(' . $ni['news_id'] . ', ' . $ni['news_subject'] . ', ' . $ni['content']. ')">Bewerken</td>';

function editNews(id, subject) {
                $('#myModal').modal('show');
                $('#hiddennewsid').val(id);
                $('#subject').val(subject);
            }


Verder geen wijzigingen in het modal. Wanneer ik dit test en ik controleer de console. Geef hij aan "Test not defined". Test is in dit geval de waarde van $ni['news_subject'] (het stukje tekst 'test').


Ik heb van alles geprobeerd door o.a. te klote met quotes. Helaas geen resultaat.

SOS help

Groet,

Gijs
Kortom:
<?php
echo '<td><button class="btn btn-default" onclick="editNews(\'' . $ni['news_id'] . '\')">Bewerken</td>';
?>
ik wil 3 parameters meegeven, en snap niet wat de meerwaarde van de slash in dit geval is. Graag iets gedetailleerdere uitleg.

Dank,

Gijs de Wert
De backslash is escaping van de quotes, omdat je ook al quotes gebruikt voor je echo.
Ik heb nu dit :


echo '<td><button class="btn btn-default" onclick="editNews(' . $ni['news_id'] . ', \'' . $ni['news_subject'] . '\', \'' . $ni['news_content'] . '\')">Bewerken</td>';


hij doet het niet.. en ik ben verdwaald in de quotes haha

PLEASE hulp!

Met vriendelijke groet,

Gijs
Dit ziet er correct uit, wat is de HTML output? En omschrijf eens iets beter wat je bedoelt met "hij doet het niet".
Sorry voor de onduidelijkheid. Dit is wat mijn paginabron geeft aan gegenereerde HTML;


<tbody>
                                    <tr>
                                        <tr><td>Gijs</td><td>hoi</td><td>doei
</td><td>2016-05-21 11:12:15</td><td><button class="btn btn-default" onclick="editNews(28, 'hoi', 'doei
')">Bewerken</td><td><button class="btn btn-default" onclick="archNews(28)">Archiveren</td><td><button class="btn btn-default" onclick="deleteNews(28)">Verwijderen</td></tr>                                    </tr>                                    
                                </tbody>


Wanneer ik in mijn console kijk, geeft hij het volgende aan wanneer ik op bewerken druk;


news.php:140 Uncaught SyntaxError: Unexpected token ILLEGAL


De HTML hierboven is regel 137 t/m 142.

Bedankt voor de sneller reactie.
Ja dat klopt ook wel. Javascript strings kunnen geen newlines bevatten, in plaats daarvan kun je \n gebruiken. Iets als str_replace("\n", '\n', $ni['news_content']) zou daar wel werken op de plek waar je nu $ni['news_content'] hebt staan.
Helaaas..

Heb het nu zo :


echo '<td><button class="btn btn-default" onclick="editNews(' . $ni['news_id'] . ', \'' . $ni['news_subject'] . '\', \'' . str_replace("\n", '\n', $ni['news_content']) . '\')">Bewerken</td>';


zelfde error nogsteeds

HTML output is nu;


<tr>
                                        <tr><td>Gijs</td><td>hoi</td><td>doei
</td><td>2016-05-21 11:12:15</td><td><button class="btn btn-default" onclick="editNews(28, 'hoi', 'doei
\n')">Bewerken</td><td><button class="btn btn-default" onclick="archNews(28)">Archiveren</td><td><button class="btn btn-default" onclick="deleteNews(28)">Verwijderen</td></tr>                                    </tr>


ik zie daar nu natuurlijk ook de \n in de functie staan, alleen snap ik er geen hol van.

Ik heb echter wel het idee dat ik erg omslachtig bezig ben.
Zucht, Windows servers :(
Verander de eerste "\n" in str_replace eens in PHP_EOL. Mogelijk werkt dat wat beter.
Super! dat werkte tot dat ik de boel veranderd had, en weer opnieuw enters in mijn textarea gezet heb. Wanneer ik vervolgens weer op bijwerken druk, begin het verhaal weer opnieuw. Minder..

Heb je misschien een alternatieve oplossing? Ik denk dat dit problematiek met zich mee blijft brengen.

Met vriendelijke groet,

Gijs

Reageren