append PHP in jquery [duplicate] - php

This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
Creating jQuery AJAX requests to a PHP function
How can i write PHP in Jquery
is there is a way to do this
$('button').click(function(){
<?php session_destroy();?>
}) ;

You can't execute PHP client-side.
But
You can call a php script on click to do what you want:
$('button').click(function(){
$.get("destroySession.php");
});
You can also get or post some values:
var values = {
destroy: true
};
//get request:
$.get("destroySession.php", values);
//post request:
$.post("destroySession.php", values);

You can't execute PHP client-side.

You cannot. PHP is interpreted on the server side and jQuery is interpreted on the client side.
You should either use an anchor <a href="session_destroy.php"> to go to another PHP page and destroy the session or use AJAX to call the destroy function without leaving the page.
jQuery('button').click( function () { jQuery.get("session_destroy.php"); } );

Related

Reuse data from jquery to php [duplicate]

This question already has answers here:
What is the difference between client-side and server-side programming?
(3 answers)
How do I pass variables and data from PHP to JavaScript?
(19 answers)
Closed 7 years ago.
Hi again are there a way that i can get the variable "log" in a jquery code like the example bellow with out using alert, a field id, class and etc.
<script>
var log='1';
</script>
<?php
$run = log
?>
I want to get the data of a certain variable in a javascript and use it as a value of a variable in my php code
You can't do it that way.
Because:
javascript runs in browser.
PHP runs at server.
There are two ways one is form submission and other one is ajax. You have to send the values to the server to get it to echo.
As per your updates, i would suggest you to use ajax/form submit:
Ajax:
var log = '1';
$.ajax({
url: 'path/to/php/file.php',
type:'get',
data:{log:log},
success:function(data){
console.log(data); // logs: The posted value is 1
}
});
here in the data object log before : is the key while log after : is the var which refers to value '1'. So, in php you can do this:
<?php
if(isset($_POST['log'])){
$run = $_POST['log'];
echo 'The posted value is '.$run;
}
?>
You cannot get client side variable on server side without the use of AJAX or some sort of post back. In all calls to a server, the server side code is execute then returned to render client side in the browser. Therefor, the client side code is ALWAYS run after the server side.
You can look at using client side code to make an AJAX request to the server and return a value or post to to a page which will load and render it server side.
You are trying to echo a value here, this can be done client side but if there is complex server side logic to get the value then I would use an AJAX request to get it.
AJAX
http://www.w3schools.com/jquery/jquery_ajax_intro.asp
POST a form
http://php.net/manual/en/tutorial.forms.php

How to pass a variable from jQuery to PHP? [duplicate]

This question already has answers here:
How do I pass JavaScript variables to PHP?
(16 answers)
Closed 8 years ago.
I have a jQuery function, which, on click, itercepts a clicked link:
$("a").click(function(e) {
e.preventDefault();
var link = $(this).prop('href');
alert(link);
});
and it works properly, but how to pass that link to a PHP variable to 'echo' it later?
I unsuccessfully tried:
$("a").click(function(event) {
event.preventDefault();
var link = $(this).prop('href');
<?php $link = .'link'. ?>
});
I know it may be a silly question, I looked all over the web but I didn't find any proper answer.
The only way to do this is to have a script wich stores values passed to it in a session or to a DB and either output the session data later or read from the db
$("a").click(function(event) {
event.preventDefault();
var link = $(this).prop('href');
$.post('saveLink.php', {href : link});
});
the saveLink.php would be something like this
<?php
// Clean your POST variable, always clean any POST variables
// see here for a good discussion on that
// http://stackoverflow.com/questions/4223980/the-ultimate-clean-secure-function
$link = htmlspecialchars($_POST['href']);
$_SESSION['links'] = $link;
?>
then later on you can retrieve all you session data
Note
Session data is not permanent and not shareable between users so if you need to do that you would be better off with a db query also if you need to access a particular link then you will need to send some sort of id with it.
PHP is preprocessor running on a server side. jQuery is running on client side (in user's browser) and it can't comunicate with PHP like this.
Although you can send the data to PHP with Ajax request and process them in another php script, for example store them in a database.
$.ajax({
url: '/ajax_catch.php',
type:'POST',
data: {
link: link
},
success: function(m){
//what to do after its done
}
});

passing arguments to php function using jquery [duplicate]

This question already has answers here:
What is the difference between client-side and server-side programming?
(3 answers)
Closed 9 years ago.
I'm having problem with my code below:
jquery
var data = $('thisForm').serialize();
var msg = <?php echo computeAverage(data)?>;
alert(msg);
php
function computeAverage($data){
return $data;
}
I'm getting " data"(string) as the output and not the actual value of data. By the way, I only use one php file that contains the jquery and php function above.
Your help will be appreciated. I really need to figure this out. I'm new to jquery.
thank you for your replies.
given that i need to place my php function to a separate file
jquery
var url = "myPhpFunction.php";
var data = $('thisForm').serialize();
$post(url,data, function(response)); // how can i get the reponse from my url?
php
function computeAverage($data){ // how to convert $data to an array?
return average; // how can i return the average back to my jquery?
}
can anyone help me? thanks
PHP code is executed on the server before the client starts executing Javascript. All the code within <?php ?> are executed first.
After the PHP code has been executed, it will send output to the client which will look like:-
var data = $('thisForm').serialize();
var msg = data; // echo executed
alert(msg);
Now javascript will start executing.
The PHP will not consider javascript variable data as it is a part of client-side scripting.
You cann't pass the value from the javascript to PHP function as PHP execute on SERVER side and Javascript execute Clint side.
You should use the Ajax for doing such thing.
use $.post for sending data to your php script!
<script type="text/javascript">
$(document).ready(function () {
$("#autocomplete").keyup(function(e){
var form = $("#autocomplete");
var data = form.serialize();
$.post("ajax_form.php", data, function(response) {
$( "#autocomplete" ).autocomplete({
source: response
})
})
})
})
</script>
html part:
<input class="formfeld" id="autocomplete" name="suchfeld" title="type "a"">

call php function in javascript [duplicate]

This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
How to call a PHP function in JavaScript?
i have a form to print to a POS printer. Problem 1 is that i cant print directly, Mybe in google chrome in kioskmode.. so. i would like to call a function after the windows be closed from printing. code is like this:
<script type="text/javascript">
$(function(){
$('#printOut').click(function(e){
e.preventDefault();
var w = window.open();
var printOne = $('.contentToPrint').html();
var printTwo = $('.termsToPrint').html();
w.document.write('<html>' + printOne + '<hr />' + printTwo ) + '</body></html>';
w.window.print();
w.document.close();
I INSERTED HERE>>> insert(); <<<<<<<<<<< AND WORKS BUT NOT BY CLOSING THE priter WINDOWS. I dont want to close the BROWSER!
return false;
});
});
</script>
where can i call the php function insert();
You can't call a PHP function since it's on the sever and your JavaScript code is on the client. You can navigate to a PHP containing that function or make an AJAX call to that page.
Navigating via Javascript would be:
document.location = "yourpage.php"
You cannot call PHP functions in the classic sense with Javascript. PHP code is run on the server, while Javascript code is executed in the user's browser window. What you can do however is use a technology called AJAX to send a request back to your server. Using HTTP methods you could initiate a PHP script that returns information back to your Javascript code also over HTTP.

JSON return undefined from JQuery request [duplicate]

This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
How to return AJAX response Text?
I'm trying to put together a JQuery timeout function for a form submit action. I have something similar in place via PHP for a page reload, and have the time of the initial page load stored in $_SESSION['pageLoad']. What I'm now trying to do is grab that value and use it in some JQuery math.
After searching around SO, I have arrived at the following:
PHP
<?php
//filename: getsession.php
session_start();
echo json_encode($_SESSION['pageLoad']);
JQuery
$("#sms-creator").submit(function() {
var session;
$.ajaxSetup({cache: false})
$.get('sms_includes/getsession.php', function(data) {
session = data;
});
//at this point I just want to see what I'm getting, hence the next 2 lines...
alert(session);
return false;
});
The path to the PHP file is relative to the form page, not the .js file.
My alert only returns 'undefined'. I'm inexperienced with Javascript and its libraries, so the fault is not apparent to me. Any help appreciated.
ajax call is done asynchronously. so when $.get is executed, request is sent to server for response, however, the javascript program will not wait for the response because it is done asynchronously. when you alert(session), variable session hasn't been set to data returned by server. Try do ajax synchronously, or put alert session in the ajax callback.

Categories