简体   繁体   中英

Using JQuery Ajax to call a php function

First and foremost thank you for checking out my problem, and for any help you may give!

Okay, so like the title says I'm in need of calling a php function from my index page, which adds a new record in my database as a vote, using JQuery Ajax. This function will return one integer, which will then be printed inside the form button in which it was called from.

Anyone have an idea on how I would accomplish this? Any guidance is appreciated!

Edit:

So if I'm using a template object I can just call the
function using ajax and it will return the output? 
What would I use as the URL? index.php?  

Such as...
function DoVote() {
    $.ajax({
    type:'POST',
    url: 'index.php',
    success: function(data) {
    $('#voteText').html(data);
 }
});

And the form action attribute is posted I'm guessing?

Yes, create a separate PHP file that calls that function and echos the output. Then load that php file with an AJAX request.

Because PHP is a server side language and jQuery (JavaScript) is Client side you can't directly call a PHP function with it, the most you can do is load a file. However, if the file has something like <?php echo($object->function()); ?> <?php echo($object->function()); ?> you can load the file, in essence calling the function.

I'm not sure that (your addition) is correct.

In an arbitrary file you have a PHP function:

<?php
    // Called "otherfile.php"

    // Function you're trying to call
    function doSomething($obj)
    {
        $ret = $obj + 5;

        return($ret);
    }
?>

And you have a file (call it ajaxcall.php) that you will load with that AJAX call.

<?php
    include("otherfile.php");   // Make the file available, be aware that if that file 
                                // outputs anything (i.e. not wrapped in a function) it
                                // may be executed
    // Grab the POST data from the AJAX request
    $obj = $_POST['obj']; 

    echo($doSomething());
?>

The ajax request simply forces some URL to be access, which runs the php located there. And by any additional parameters (even GET) you may either change the function being called or pass these to the function itself.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM