String in javascript function

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Gijs Anoniem

Gijs Anoniem

21/05/2016 11:46:14
Quote Anchor link
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 :

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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
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
 
PHP hulp

PHP hulp

20/04/2024 04:20:19
 
Ben van Velzen

Ben van Velzen

21/05/2016 11:59:54
Quote Anchor link
Kortom:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo '<td><button class="btn btn-default" onclick="editNews(\'' . $ni['news_id'] . '\')">Bewerken</td>';
?>
 
Gijs Anoniem

Gijs Anoniem

21/05/2016 12:20:51
Quote Anchor link
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
 
Ben van Velzen

Ben van Velzen

21/05/2016 12:26:04
Quote Anchor link
De backslash is escaping van de quotes, omdat je ook al quotes gebruikt voor je echo.
Gewijzigd op 21/05/2016 12:26:23 door Ben van Velzen
 
Gijs Anoniem

Gijs Anoniem

21/05/2016 15:10:07
Quote Anchor link
Ik heb nu dit :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
 
Ben van Velzen

Ben van Velzen

21/05/2016 15:18:47
Quote Anchor link
Dit ziet er correct uit, wat is de HTML output? En omschrijf eens iets beter wat je bedoelt met "hij doet het niet".
 
Gijs Anoniem

Gijs Anoniem

21/05/2016 15:22:47
Quote Anchor link
Sorry voor de onduidelijkheid. Dit is wat mijn paginabron geeft aan gegenereerde HTML;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<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;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
news.php:140 Uncaught SyntaxError: Unexpected token ILLEGAL


De HTML hierboven is regel 137 t/m 142.

Bedankt voor de sneller reactie.
Gewijzigd op 21/05/2016 15:23:52 door Gijs Anoniem
 
Ben van Velzen

Ben van Velzen

21/05/2016 15:28:08
Quote Anchor link
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.
 
Gijs Anoniem

Gijs Anoniem

21/05/2016 15:49:49
Quote Anchor link
Helaaas..

Heb het nu zo :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<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.
 
Ben van Velzen

Ben van Velzen

21/05/2016 15:57:16
Quote Anchor link
Zucht, Windows servers :(
Verander de eerste "\n" in str_replace eens in PHP_EOL. Mogelijk werkt dat wat beter.
 
Gijs Anoniem

Gijs Anoniem

21/05/2016 16:06:29
Quote Anchor link
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
 
Ben van Velzen

Ben van Velzen

21/05/2016 16:08:26
Quote Anchor link
Een alternatief zou zijn om gewoon met AJAX de content op te halen, en die niet mee te geven aan je functie. Maar dit zou ook gewoon moeten werken, tenzij je nog ergens anders deze constructie gebruikt, of je naar cache zit te kijken.
 
Gijs Anoniem

Gijs Anoniem

21/05/2016 16:19:02
Quote Anchor link
Crtl + r reload gedaan. Toch blijft hij de fout weer weergeven, en de html ziet er nu zo uit;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<tr><td>Gijs</td><td>hoi</td><td>doei mijndfsgdfjkgsdfg
asdfajksdhfa
asdfasdf
</td><td>2016-05-21 16:04:25</td><td><button class="btn btn-default" onclick="editNews(28, 'hoi', 'doei mijndfsgdfjkgsdfg
asdfajksdhfa
asdfasdf
')">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>
 
Marthijn Buijs

Marthijn Buijs

21/05/2016 16:32:54
Quote Anchor link
Offtopic:
De toets F5 i.v.m. Crtl + R is makkelijker ;)
 
Ben van Velzen

Ben van Velzen

21/05/2016 16:35:59
Quote Anchor link
Nog verder offtopic: F5 vernieuwt de cache niet. ctrl+R ook niet. ctrl+F5 wel. Laat je PHP code eens zien.
 
Marthijn Buijs

Marthijn Buijs

21/05/2016 17:43:29
Quote Anchor link
Aha, dat wist ik nog niet!
 
Gijs Anoniem

Gijs Anoniem

21/05/2016 19:57:55
Quote Anchor link
Bedankt voor de tips. Ik heb alle genoemde opties geprobeerd, maar helaas geen resultaat.

Iemand nog mogelijkheden/suggesties? Ben zelf wel bekend met AJAX. Alleen puur om spul in een database te zetten.
 
Ben van Velzen

Ben van Velzen

21/05/2016 20:54:22
Quote Anchor link
Grappig, want ik zie het antwoord op de vraag "laat je PHP code eens zien", dus zoals het nu is, niet staan. Iets vollediger ook dan één regeltje. Ik heb namelijk het vermoeden dat je gewoon verschillende stukken code door elkaar aan het halen bent.
 
Gijs Anoniem

Gijs Anoniem

21/05/2016 21:00:23
Quote Anchor link
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
<?php
//Altijd eerst de loader laden. Hierin worden alle klassen gekoppeld, en object aangemaakt indien nodig!
include_once 'loader.php';

//Pagina visibility instellen met de gatekeeper classes
$gatekeeper->setVisibility("Guest");
?>


<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <title>Onelife Nieuws</title>

        <!-- Bootstrap core CSS -->
        <link href="css/bootstrap.css" rel="stylesheet">

        <!-- Eigen css bestanden inladen -->
        <link href="css/style.css" rel="stylesheet">
        <link href="css/style-responsive.css" rel="stylesheet">

        <link href="css/table-responsive.css" rel="stylesheet">

    </head>

    <body>

        <section id="container" >

            <?php include_once 'config/sidebar.php'; ?>

            <!-- **********************************************************************************************************************************************************
            MAIN CONTENT
            *********************************************************************************************************************************************************** -->
            <!--main content start-->

            <!--main content start-->
            <section id="main-content">
                <section class="wrapper site-min-height">

                    <h3><i class="fa fa-angle-right"></i> Nieuws</h3>
                    <div class="row mt">
                        <div class="col-lg-12">
                            <form class="form-horizontal" method="POST" action="handlers/add_news_handle.php">
                                <div class="form-group">
                                    <label class="col-sm-2 col-sm-2 control-label">Onderwerp</label>
                                    <div class="col-sm-4">
                                        <input type="text" class="form-control" name="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-4">
                                        <textarea required rows = "6" style="min-width: 100%" name="content"></textarea>
                                    </div>
                                </div>
                                <div class="form-group">
                                    <div class="col-sm-6">
                                        <button class="btn btn-default btn-block" type="submit" id="submitForm">Project toeveoegen</button>
                                    </div>
                                </div>
                            </form>
                        </div>

                    </div>

                    <hr>

                    <div class="row mt">
                        <div class="col-lg-12">

                        </div>

                        <ul class="nav nav-tabs">
                            <li class="active"><a data-toggle="tab" href="#home">Nieuws</a></li>
                            <li><a data-toggle="tab" href="#menu1">Archief</a></li>
                        </ul>

                        <div class="tab-content">
                            <div id="home" class="tab-pane fade in active">
                                <table class="table table-bordered table-striped table-condensed">
                                    <thead>
                                        <tr>
                                            <th>Auteur</th>
                                            <th>Onderwerp</th>
                                            <th>Bericht</th>
                                            <th>Datum</th>
                                            <th>Bewerken</th>
                                            <th>Archiveren</th>
                                            <th>Verwijderen</th>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <tr>
                                            <?php
                                            $sql
= "SELECT * FROM news WHERE news_status = 1";
                                            $a = $db->get_array($sql);

                                            foreach ($a as $ni) {
                                                echo '<tr>';
                                                echo '<td>' . $ni['news_author'] . '</td>';
                                                echo '<td>' . $ni['news_subject'] . '</td>';
                                                echo '<td>' . $ni['news_content'] . '</td>';
                                                echo '<td>' . $ni['news_post_date'] . '</td>';
                                                echo '<td><button class="btn btn-default" onclick="editNews(' . $ni['news_id'] . ', \'' . $ni['news_subject'] . '\', \'' . str_replace(PHP_EOL, '\n', $ni['news_content']) . '\')">Bewerken</td>';
                                                echo '<td><button class="btn btn-default" onclick="archNews(' . $ni['news_id'] . ')">Archiveren</td>';
                                                echo '<td><button class="btn btn-default" onclick="deleteNews(' . $ni['news_id'] . ')">Verwijderen</td>';
                                                echo '</tr>';
                                            }

                                            ?>

                                        </tr>                                    
                                    </tbody>
                                </table>
                            </div>
                            <div id="menu1" class="tab-pane fade">
                                <table class="table table-bordered table-striped table-condensed">
                                    <thead>
                                        <tr>
                                            <th>Auteur</th>
                                            <th>Onderwerp</th>
                                            <th>Bericht</th>
                                            <th>Datum</th>
                                            <th>Bewerken</th>
                                            <th>Terugplaatsen</th>
                                            <th>Verwijderen</th>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <tr>
                                            <?php
                                            $sql
= "SELECT * FROM news WHERE news_status = 0";
                                            $a = $db->get_array($sql);

                                            foreach ($a as $ni) {
                                                echo '<tr>';
                                                echo '<td>' . $ni['news_author'] . '</td>';
                                                echo '<td>' . $ni['news_subject'] . '</td>';
                                                echo '<td>' . $ni['news_content'] . '</td>';
                                                echo '<td>' . $ni['news_post_date'] . '</td>';
                                                echo '<td><button class="btn btn-default" onclick="editNews(' . $ni['news_id'] . ', \'' . $ni['news_subject'] . '\', \'' . str_replace(PHP_EOL, '\n', $ni['news_content']) . '\')">Bewerken</td>';
                                                echo '<td><button class="btn btn-default" onclick="archNews(' . $ni['news_id'] . ')">Archiveren</td>';
                                                echo '<td><button class="btn btn-default" onclick="deleteNews(' . $ni['news_id'] . ')">Verwijderen</td>';
                                                echo '</tr>';
                                            }

                                            ?>

                                        </tr>                                    
                                    </tbody>
                                </table>
                            </div>
                        </div>
                    </div>


                </section><! --/wrapper -->
            </section><!-- /MAIN CONTENT -->

            <!--main content end-->
        </section>

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

            function edit_news_handle() {
                var id = $('#hiddennewsid').val();
                var subject = $('#subject').val();
                var content = $('#content').val();

                $.ajax({
                    url: 'handlers/edit_news_handle.php',
                    method: 'POST',
                    data: {id: id, subject: subject, content: content},
                    dataType: 'text',
                    success: function (data) {
                        switch (data) {
                            case "succes" :
                                location.reload();
                                break;
                            case "failed" :
                                alert(data);
                                break;
                        }
                    }
                });
            }

            function deleteNews(id) {
                $.ajax({
                    url: 'handlers/delete_news_handle.php',
                    method: 'POST',
                    data: {id: id},
                    dataType: 'text',
                    success: function (data) {
                        switch (data) {
                            case "succes" :
                                $('#modalArchDelete').modal('show');
                                $('#archDeleteContent').html('Nieuwsitem verwijderd.');
                                setTimeout(function () {
                                    location.reload();
                                }, 1000);
                                break;
                            case "failed" :
                                alert(data);
                                break;
                        }
                    }
                });
            }

            function archNews(id) {
                $.ajax({
                    url: 'handlers/arch_news_handle.php',
                    method: 'POST',
                    data: {id: id},
                    dataType: 'text',
                    success: function (data) {
                        switch (data) {
                            case "succes" :
                                $('#modalArchDelete').modal('show');
                                $('#archDeleteContent').html('Nieuwsitem gearchiveerd.');
                                setTimeout(function () {
                                    location.reload();
                                }, 1000);
                                break;
                            case "failed" :
                                alert(data);
                                break;
                        }
                    }
                });
            }

        </script>

        <!-- 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>

        <div id="modalArchDelete" 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">
                        <p id="archDeleteContent"></p>
                    </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>

        <!-- js placed at the end of the document so the pages load faster -->
        <script src="js/jquery.js"></script>
        <script src="js/jquery-2.2.1.min.js"></script>
        <script src="js/bootstrap.min.js"></script>
        <script class="include" type="text/javascript" src="js/jquery.dcjqaccordion.2.7.js"></script>
        <script src="js/jquery.scrollTo.min.js"></script>
        <script src="js/jquery.nicescroll.js" type="text/javascript"></script>
        <script src="js/jquery.sparkline.js"></script>


        <!--common script for all pages-->
        <script src="js/common-scripts.js"></script>

        <!--script for this page-->
        <script src="js/sparkline-chart.js"></script>    
        <script src="js/zabuto_calendar.js"></script>
 
Ben van Velzen

Ben van Velzen

21/05/2016 21:10:24
Quote Anchor link
Het ziet er opzich correct uit, hooguit wat omslachtig. Ik zou toch eens proberen de cache eens te legen en dan verder te testen. Misschien dat iemand anders wat ziet :|
 
Gijs Anoniem

Gijs Anoniem

21/05/2016 21:20:46
Quote Anchor link
Bedankt Ben van Velzen voor je moeite en vooral snelle reactie!

Wie o wie kan mij helpen of de goede richting in sturen???

Met vriendelijke groet,

Gijs

Toevoeging op 22/05/2016 10:12:17:

Wie? ik moet vooruit

Toevoeging op 22/05/2016 10:12:47:

Helppppp
 

Pagina: 1 2 volgende »



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.