Luke Litherland Luke Litherland - 1 year ago 86
Ajax Question

'Unexpected token ;' when trying to pass PHP variable in jQuery AJAX request

So im trying to run a PHP script that sets a deleted field in the database to poplulate if you drag a certain text element to the droppable area.

At the moment i have this droppable area:

<div class="dropbin" id="dropbin" >
<span class="fa fa-trash-o noSelect hover-cursor" style="font-size: 20pt; line-height: 225px;">&nbsp;</span>
</div>


and this draggable text:

<div id='dragme' data-toggle='modal' data-target='#editNoteNameModal' class='display-inline'>" . $data['NoteName'] . "</div>


The area im having an issue with is this:

$("#dropbin").droppable
({
accept: '#dragme',
hoverClass: "drag-enter",
drop: function(event)
{
var noteid = <?php if(isset($_POST['noteid'])){ echo $_POST['noteid'];} ?>;
var deletedby = <? if(isset($_SESSION['username'])){ echo $_SESSION['username'];} ?>
var data = {noteid1: noteid, deletedby1: deletedby};

if (confirm('Delete the note?')==true)
{
$('#dragme').hide();
debugger
$.ajax({
type: 'POST',
url: 'deleteNote.php',
datatype: 'json',
data: data,
success: function(result)
{
alert("Success");
}
});

window.location = "http://discovertheplanet.net/general_notes.php";
}
else
{
window.location = "http://discovertheplanet.net/general_notes.php";
}
}
});


EDIT: The line i get the error on is:

var noteid = <?php if(isset($_POST['noteid'])){ echo $_POST['noteid'];} ?>;


Im currently getting an "Unexpected token ;" and its stopping the droppable from working.

Just a side note, if i run it without the variables it hits everything apart from:

url: 'deleteNote.php',


Also inside deleteNote.php is this incase it helps:

<?php

include "connectionDetails.php";

?>

<?php

if (isset($_POST['noteid1'], $_POST['deletedby1']))
{
$noteid2 = $_POST['noteid1'];
$deletedby2 = $_POST['deletedby1'];

// echo "Hello...". $noteid;

$stmt = "UPDATE Notes SET Deleted = GETDATE() WHERE NoteID = (?)";
$params = array($noteid2);

$stmt = sqlsrv_query($conn, $stmt, $params);

if ($stmt === false)
{
die( print_r(sqlsrv_errors(), true));
}
}

else
{
echo "No Data";
}


?>


(I deliberatley don't have deletedby in the database just yet, ignore that)

Could anyone possibly help me to get this to work?

Answer Source

Try adding quotes in these lines and add php after <? in second line:

  var noteid = "<?php if(isset($_POST['noteid'])){ echo $_POST['noteid'];} ?>";
  var deletedby = "<?php if(isset($_SESSION['username'])){ echo $_SESSION['username'];} ?>";

OR

var noteid = "<?=isset($_POST['noteid']) ? $_POST['noteid'] : "" ?>";
var deletedby = "<?=isset($_SESSION['username']) ? $_SESSION['username'] : "" ?>";
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download