php onclick file path
Ik probeer een filename toe te voegen aan de label onclick. Via javascript en xhttprequest moet hij dan het file deleten. Als ik de variable van het filename toevoeg aan de onclick geeft hij iedere keer een foutmelding. Als ik de onclick zonder het filename doet komt hij wel gewoon in de javascript function. Ik gebruik deze manier meer in mijn script maar daar doet hij het wel gewoon. Als ik de variable echo geeft hij wel de juiste filename weer. Ik krijg iedere keer de foutmelding unexpected end of input. Als ik de variable weg laat voert hij wel gewoon de javascript functie uit. Ik heb het hele script ook al nagelopen maar ik zie nergens een haakje of ; die ik ben vergeten.
Code (php)
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
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
<?php
[code]<?php
session_start();
?>
<html>
<head>
<link type="text/css" rel="stylesheet" href="style.css"/>
<link type="text/css" rel="stylesheet" href="stijl.css"/>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<script src="https://rawgit.com/abdmob/x2js/master/xml2json.min.js"></script>
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
function Exitchat()
{
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function()
{
if (xhttp.readyState == 4 && xhttp.status == 200)
{
var xmlDoc = xhttp.responseXML;
window.close();
}
}
xhttp.open("GET", "chatxml.php?chatfile=" + chatfile, true);
xhttp.send();
}
</script>
</head>
<body>
<div id="chatheader">
<p>Welkom <?php echo $_SESSION["username"];?><br></p>
<p>Chat met <?php echo $_SESSION["chatuser"]; ?></p>
</div>
<div id="wrapper">
<div id="menu">
<?php
$chatfile = $_SESSION["file"];
$xml = new DOMDocument();
$xml->load($chatfile);
echo "<label onclick='Exitchat()' name='exitchat' id='exitchat'>Exit chat</label>";
?>
</div>
<div id="chatbox" style="background-color:white"></div>
<form name="message" action="">
<input name="usermsg" type="text" id="usermsg" size="63" />
<input name="submitmsg" type="submit" id="submitmsg" value="Send" />
</form>
</div>
</body>
</html>
?>
[code]<?php
session_start();
?>
<html>
<head>
<link type="text/css" rel="stylesheet" href="style.css"/>
<link type="text/css" rel="stylesheet" href="stijl.css"/>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<script src="https://rawgit.com/abdmob/x2js/master/xml2json.min.js"></script>
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
function Exitchat()
{
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function()
{
if (xhttp.readyState == 4 && xhttp.status == 200)
{
var xmlDoc = xhttp.responseXML;
window.close();
}
}
xhttp.open("GET", "chatxml.php?chatfile=" + chatfile, true);
xhttp.send();
}
</script>
</head>
<body>
<div id="chatheader">
<p>Welkom <?php echo $_SESSION["username"];?><br></p>
<p>Chat met <?php echo $_SESSION["chatuser"]; ?></p>
</div>
<div id="wrapper">
<div id="menu">
<?php
$chatfile = $_SESSION["file"];
$xml = new DOMDocument();
$xml->load($chatfile);
echo "<label onclick='Exitchat()' name='exitchat' id='exitchat'>Exit chat</label>";
?>
</div>
<div id="chatbox" style="background-color:white"></div>
<form name="message" action="">
<input name="usermsg" type="text" id="usermsg" size="63" />
<input name="submitmsg" type="submit" id="submitmsg" value="Send" />
</form>
</div>
</body>
</html>
?>
En waar voeg je die bestandsnaam dan in?
Ik vermoed dat je probleem hier ligt
Als je aan de Exitchat de $chatfile toe wilt voegen moet je die tussen quotes zetten. Omdat je echter al de dubbele quotes binnen PHP gebruikt om de string aan te duiden, en de enkele quotes binnen HTML om de onclick property af te bakenen moet je binnen de Exitchat functie weer dubbele quotes gebruiken, en deze dan escapen voor PHP. Oftewel:
Maar als die $chatfile al in de sessie staat, dan hoef je 'm toch niet met AJAX request mee te geven?
Ik vermoed dat je probleem hier ligt
Als je aan de Exitchat de $chatfile toe wilt voegen moet je die tussen quotes zetten. Omdat je echter al de dubbele quotes binnen PHP gebruikt om de string aan te duiden, en de enkele quotes binnen HTML om de onclick property af te bakenen moet je binnen de Exitchat functie weer dubbele quotes gebruiken, en deze dan escapen voor PHP. Oftewel:
Code (php)
1
echo "<label onclick='Exitchat(\"$chatfile\")' name='exitchat' id='exitchat'>Exit chat</label>";
Maar als die $chatfile al in de sessie staat, dan hoef je 'm toch niet met AJAX request mee te geven?
ah ja nu doet hij het. Ik had het via '".$chatfile."' gedaan maar die pakte hij hier niet. Bij de vorige deed hij dat wel namelijk




