Set Session inside the javascript [duplicate] - php

This question already has answers here:
What is the difference between client-side and server-side programming?
(3 answers)
Closed 9 years ago.
I want to set session inside the javascript. But all the time this function return false value. Please tell me the error of this code.
<script>
function myFunction(){
var r=confirm("Would you like to add another item ?");
if (r==true) {
alert('ok');
var varname = '<?php echo $_SESSION["redirect"]=1; ?>';
}
if(r==false) {
alert('bad');
var varname = '<?php echo $_SESSION["redirect"]=2; ?>';
}
}
</script>

You can't evaluate PHP on the client. Do an AJAX request to the server setting the session variable instead.

Javascript runs on the client side, so you'll need to perform an AJAX call to a server side script that will change the sessions value.
Something in the lines of:
function changeSession()
{
$.ajax({
url: /change_session.php?value=1&key=redirect,
dataType:"html"
});
}
And in change_session.php:
<?php $_SESSION[$_REQUEST['key']]=$_REQUEST['value'] ?>

Related

how can i pass ajax response to php? [duplicate]

This question already has answers here:
how to assign javascript variable value to php variable [duplicate]
(11 answers)
Closed 4 years ago.
i'm using a onchange function to post value to ajax.
function viewTest() {
jQuery("#empy_card").hide()
var test_type= jQuery('#test_type').val();
var myvals = jQuery("#table").html('');
jQuery.ajax({
type: "POST",
url: "test.php?smt=command",
dataType: 'json',
data: {test_type:test_type},
success: function(data){
//alert(data.date);
//alert(data.book);
<?php
$date = data.date;
$book = data.book;
?>
}
});
}
its work successfully. i got in alert form data.date
"18-Dec-10","20-Apr-11"
i got in alert form data.book
"book A","book C"
test.php
<?php
if(isset($_GET['smt'])=='command'){
$test= $_POST['book_name'];
include('connection.php');
$data=array();
$result ="SELECT * FROM books WHERE Type_of_books='$test'";
$ftc = mysqli_query($conn,$result)or die(mysqli_error($conn));
while($row = mysqli_fetch_array($ftc)) {
$data['date'][] ='"'.$row['date'].'"';
$data['book'][] = $row['name'];
}
echo json_encode($data);
}
?>
how can i get this data to php variable like $dates = data.date; And $book = data.book
Why are you using php in Ajax and you are assigning JavaScript variable to php. If you really want that response use cookies or session variables.
Remember that your PHP code is evaluated by the server, not the client. That means that you can access your $date and $year in various ways.
Server side (PHP)
You have to delete your Ajax request and write it using PHP, then you can access the variables.
Client side (JavaScript)
You already got them in data!

How I can use the Javascript variable in PHP? [duplicate]

This question already has answers here:
What is the difference between client-side and server-side programming?
(3 answers)
Reference - What does this error mean in PHP?
(38 answers)
Closed 5 years ago.
I have that code:
function saveData(position, map) {
var latlng = marker.getPosition();
var late = latlng.lat();
var longe = latlng.lng();
<?php
require("sql.php");
session_start();
$name = 'prova';
$address = 'temare';
$type = 'bar';
$late = "<script>document.getElementByID('late').value</script>";
$longe ="<script>document.getElementByID('longe').value</script>";
I need to get late and longe variables in PHP but this doesn't work, anyone knows how I can do it?
You can't access javascript variables using PHP as JavaScript is executed on client side ( browser ) and PHP on server side.
The best what you can do is send data from those variables as request to server and read them, for example using jQuery ajax request:
Good example you can find here:
jQuery Ajax POST example with PHP
Or you can use this:
javascript
function sendData(variable1, variable2) {
$.ajax({
type: 'post',
url: 'myphpscript.php'
data: 'var1='+variable1+'&var2='+variable2
});
myphpscript.php
<?php
$variable1 = $_POST['var1'];
$variable2 = $_POST['var2'];
<script type="text/javascript">
<?php $abc = "<script>document.write(late)</script>"?>
<?php $def = "<script>document.write(longe)</script>"?>
</script>

Why this is variable does not work? Jquery [duplicate]

This question already has answers here:
How do I return the response from an asynchronous call?
(41 answers)
Closed 9 years ago.
I am writing the following code below, which basically takes the data from the current date to a PHP file to handle in jQuery. Until here everything well. But I'm not understand why I can not have a new value of the total variable after it picks the value coming PHP file.
day.each(function () {
var $this = $(this);
var the_index = $this.index();
var the_date = $this.find('h3.date').html().substr(0,2);
var the_day = $this.find('h3.day');
/*THIS VARIABLE*/
var total = 0;
$.get('trd/datetime.php', function (date) {
if(that.hasClass('list-'+date.day)) {
weekList.find('.item.list-'+date.day).addClass('active');
}
total = date.firstDate;
}, 'json');
console.log(total);
});
I don't know if my english helps, but, please, tell me what wrong I'm doing!
Thanks.
The .get call is asynchronous -- the stuff inside it runs after your console.log statement.
You probably want to use a callback, which you invoke from inside the .get handler:
$.get('trd/datetime.php', function (date) {
// ...
callback(total);
}, 'json');
function callback(total) {
console.log(total);
}

Need to pass a value from PHP to Javascript [duplicate]

This question already has answers here:
how to pass these strings from php to javascript
(5 answers)
Closed 9 years ago.
I need to pass a value from PHP back to my javascript. I have tried so many things but can't get it to work. Here is my code.
<script type="text/javascript">
life = {};
life.anjaxEnter = function(finished) {
$.ajax({
dataType:"json",
type:"POST",
data:mydata,
url:"myurl.php",
async:false,
success:life.receiveResult,
});
setTimeout("location.href='myredirectionurl'", 1000); // Redirect after 1 second
}
life.receiveResult = function(result) {
alert(result);
}
</script>
I need to pass a specific value from the PHP file back to life.receiveResult and then add this to the redirection url.
The biggest problem is probably that at the time when you assign life.receiveResult to success, life.receiveResult is undefined. You need to define it before you assign it to something else.
myurl.php needs to return a JSON result when it's called. Something like this:
<?php
header("Content-Type: text/json");
$mydata = "Hello";
echo json_encode(array('ok' => true, 'mydata' => $mydata));
?>
Have a look at the json_encode docs, the header docs and some of the other answers for more information.

How to use my PHP function in JavaScript code [duplicate]

This question already has answers here:
Call php function from JavaScript
(5 answers)
Closed 7 years ago.
I'm trying to use my PHP function in JavaScript like this:
PHP code:
function checkevents($date){
$ev = new CalendarModelEventss();
$wh = "`event_date` = '".$date."'";
$all = $ev->getAllEvents('event_date', $wh);
if($all == $date){
//echo 'event is available'.$all;
return true;
} else {
return false;
//echo 'event is NOT available' .'--'. $all;
}
}
and JavaScript code:
var yyyy = date.getLocalFullYear(true, this.dateType);
var mm = date.getLocalMonth(true,this.dateType);
var dd = iday;
var ddddd = yyyy+'/'+mm+'/'+dd;
if(<?php checkevents( ?>ddddd<?php ) ?>){
cell.className += " eventsss ";
}
but it doesn't work, and I have PHP error (syntax error, unexpected ';', expecting ')' in ...).
As the previous speaker said, it's impossible to directly call php functions from javascript. PHP could be used to output javascript though.
In your case you would need to send an ajax-request from the client side (with javascript) that executes the php code (on the server side), fetches the output and puts it into your if-statement.
If you do not know alot about javascript/AJAX you could take a look at jQuery or another similar framework.
Javascript is parsed on client side and PHP on Server side.
Without AJAX this is impossible.
Example with JQuery:
PHP:
...
echo "true";//or something else that indicates the success
} else {
echo "false";//or something else that indicates the failure
}
...
Javascript:
$.ajax({
url: "URL TO YOU PHP SCRIPT",
cache: false
}).done(function( html ) {
if(html.match(/true/g)){
cell.className += " eventsss ";
}
});
You cannot directly call php function using javascript directly as both of them are on different sides.So what you do is make an AJAX call with certain parameters and after that call that php function directly from that php file with the parameters to be validated.
And Send back the output back to javascript by echoing the output and do whatever with it on javascript.

Categories