Calling / Using a PHP variable
Hi everyone,
I am using JQuery to append a list item (to a ul on page 'tracks.php') generated on another page ('add_track_to_db.php'). This works fine, but I also need to retrieve a PHP variable ($prev_track_order) from the latter to manipulate in a JQ function.
As you see, I am currently using a piece of PHP code in the JQ which doesn't, but this is probably because it isn't being carried from the add_track_to_db page.
Is it possible to request and receive two separate responses, or is it a simple bit of php within the JQ?
Here's the JQ from tracks.php:
<script type="text/javascript" charset="utf-8">
$('input[type="button"]').click(function(event) {
var $target = $(event.target);
var moj_id = $('#moj_id').val();
var track_no = $('#track_no').val();
var track_title = $('#track_title').val();
var track_artist = $('#track_artist').val();
var track_asinuk = $('#track_asinuk').val();
var track_asinus = $('#track_asinus').val();
$.post('../includes/add_track_to_db.php', {
'moj_id' : moj_id,
'track_no' : track_no,
'track_title' : track_title,
'track_artist' : track_artist,
'track_asinuk' : track_asinuk,
'track_asinus' : track_asinus,
},
function(r) {
// The next line is where I wish to call the php variable from add_track_to_db.php)
var prev_track = "<?php echo $prev_track_order ; ?>";
console.log(prev_track)
$('<div class="overlay"></div>')
.appendTo('#form_block')
.fadeIn(1000, function() {
// $('<tr><td>' + r + '</td></tr>')
$('<li>' + r + '</li>')
//.hide()
.appendTo("#tracks li:eq("+prev_track+")")//('#tracks') // + (track_no -
// .appendTo('#tracks li:eq(prev_track)')//('#tracks') // + (track_no - 1))
.show(1000, function() {
if ($target.is('#submit1')) {
$('#form_block').slideUp(1000, function() {
$('.overlay').hide();
});
};
if ($target.is('#submit2')) {
$('.overlay').fadeOut(1000);
};
document.getElementById('form').reset();
});
});
});
return false;
});
</script>
And here's add_track_to_db:
<?php
include ('conf.php')
if(
IS_AJAX) {
$moj_id = $_POST['moj_id'];
$track_no = $_POST['track_no'];
$track_title= $_POST['track_title'];
$track_artist= $_POST['track_artist'];
$track_asinuk= "Its JQ"; // $_POST['track_asinuk'];
$track_asinus= $_POST['track_asinus'];
}
$connection = mysql_connect($host, $user, $pass)
or trigger_error('Unable to connect: ' . mysql_error($connection), E_USER_ERROR);
// select database
mysql_select_db($db)
or trigger_error('Query failed: ' . mysql_error($connection), E_USER_ERROR);
$query = "SELECT track_order
FROM tracks
WHERE track_no <=
$track_no
AND moj_id = '
$moj_id'
ORDER BY track_order DESC
LIMIT 1"
;
$result = mysql_query($query)
or trigger_error('Query failed: ' . mysql_error($connection), E_USER_ERROR);
$row = mysql_fetch_object($result);
$prev_track_order = $row->track_order;
$new_track_order = $prev_track_order + 1;
// Increase track_order of all following tracks
$query = "UPDATE tracks
SET track_order=track_order + 1
WHERE track_order >
$prev_track_order
AND moj_id = '
$moj_id'";
$result = mysql_query($query)
or trigger_error('Query failed: ' . mysql_error($connection), E_USER_ERROR);
$query = "INSERT INTO
tracks(moj_id, track_no, track_title, track_artist, track_asinuk, track_asinus, track_order)
VALUES ('
$moj_id', '$track_no', '$track_title', '$track_artist', '$track_asinuk', '$track_asinus', $new_track_order)";
$result = mysql_query($query)
or
trigger_error('Query failed: ' . mysql_error($connection), E_USER_ERROR);
if (!
$result){
echo "There was an error on the add_track_to_db page";
}
else{
if(IS_AJAX) {
echo $track_no . ': ' . $track_title . ' - ' . $track_artist . ' ::: ' . $track_asinuk . ' ::: ' . $track_asinus ;
}
}
?>
All suggestions welcome.
Thanks in advance.
KN