Yaan Xuin
Yaan Xuin

Reputation: 17

.ajax() not sending data to php file

I am having a problem is retrieving data sent to a php file through .ajax() via jquery

Following is my html:

<!-- Jquery tute no 94 onwards -->

<html lang="en">

<head>

<meta charse="utf-8">
<title> jquery4 </title>
<link rel="stylesheet" type="text/css" href="jquery4.css"/> 

</head>

<body>

<input id="lo" type="text"> </input>
<input id="ton" type="button" value="Load"> </input>
<div id="content"> </div>

<script type="text/javascript" src="jquery.js"> </script>
<script type="text/javascript" src="jquery4.js"> </script>

</body>

</html>

My jquery4.js is:

$(document).ready(function()
{
$('#ton').click(function()
{ 
    var nm= $('#lo').val();
    $.ajax({url: 'page.php', data1: 'name='+nm, success: function(data2)
    {
        $('#content').html(data2);
    }
    });
});
}); 

My page.php is:

<?php
if(isset($_GET['data1']))
{
    echo $namer= $_GET['data1'];
}
?>

All the above files are in the same folder, and I have xampp installed. I guess the error is somewhere in the jquery file where I call the ajax() function

Upvotes: 0

Views: 62

Answers (3)

madsobel
madsobel

Reputation: 3297

Try this:

$(document).ready(function() {
    $('#ton').click(function() { 
        var nm= $('#lo').val();
        $.ajax({
            url: 'page.php?name=' +nm, 
            success: function(data2) {
                $('#content').html(data2);
            }
        });
    });
}); 

You don't have to tell jQuery to use GET, as it defaults to that, if nothing else is specified. So the ajax function does not take an argument called data1, but 'data', this is mostly used for other methods as POST, PUT and DELETE.

I prefer also sending GET requests with a normal query string, like the above example.

You can then check for get GET parameter with PHP, using $_GET['name']

Upvotes: 0

ashkufaraz
ashkufaraz

Reputation: 5307

$.ajax({
type: "GET",
url: "page.php",
data: {
            data1: 'name=' + nm,
        }
,
        success: function(data2) {
            $('#content').html(data2);
        }

});

Upvotes: 0

Quentin
Quentin

Reputation: 944451

jQuery ajax doesn't take a data1 parameter. It takes a data parameter, which should be an object of name-value pairs.

    $.ajax({
        url: 'page.php',
        data: {
            data1: 'name=' + nm,
        },
        success: function(data2) {
            $('#content').html(data2);
        }
    });

Upvotes: 4

Related Questions