开发者

Ajax not sending data at all

im working on a script that sends a few data stored using GET to a PHP script(process it then put it into database).

here's the ajax script , im using jQuery ajax (i have included the latest jQuery script)

function send(){
  $.ajax({
     type: "GET",
     url: "http://examplewebsite.com/vars/parse.php",
     data: "id=" + id + "&purl=" + purl + "&send" + "true",
     cache: false,
     success: function(){
       alert("Sent");

     }
  });
}

id and p开发者_StackOverflow中文版url are JavaScript variables .

send() function is set in :

<a href="#" onclick="send()">Send</a>

PHP code:

<?php

//Connect to database
include ("config.php");

//Get the values
$id = $_GET['id'];
$purl = $_GET['purl'];
$send = $_GET['send'];

if ($send == 'true') {


    $insertdata = "INSERT INTO data (id,purl,send) VALUES ('$id','$purl',+1)";
    mysql_query($insertdata) or die(mysql_error());
} else {
    //do nothing
}
?>

when i type http://examplewebsite.com/vars/parse.php?id=123&purl=example&send=true it works, the php injects the data into the database as i wanted but when i use send() and wanted to use ajax to send the data, failed.

Is there any mistakes that im making?


You're missing the = after send,

function send(){

  $.ajax({
     type: "GET",
     url: "http://examplewebsite.com/vars/parse.php",
     data: "id=" + id + "&purl=" + purl + "&send=" + "true",
     cache: false,
     success: function(){
       alert("Sent");

     }
  });
}

should fix it, also. post more information about your javascript. We just have to assume id and purl are filled out. Did you try debugging them (if this doesn't work).

Also, debug the URL that is requested, you can use firefox or chrome dev-tools for this. What url is being send to the PHP page and is it correct


missing "=" in the data string.

 data: "id=" + id + "&purl=" + purl + "&send" + "true",

should be

 data: "id=" + id + "&purl=" + purl + "&send=" + "true",


It depends where you are running your script, because ajax calls are not meant to work on other domains. If you need to run the js on http://example1.com and the call to go to http://example2.com you need another approach.

An idea is to use json


Try

data: { id: id, purl: purl, send: true }

See if that makes any difference



First, i suggest (if you use Chrome or Safari) to use the Web Inspector (Right Click anywhere - inspect element) and then press ESC to show to console, this will assist you in validating your JS code. That would show you you have a '=' missing.

Second, i would try something a bit more simple just to make sure you get to the file.

JS:

// Don't forget encoding the data before sending, this is just a simple example
$.get("parse.php?sent=true",
     function(data){
         alert("I think i got a nibble...");
         alert(data);
     }
);

On the php file :

$sent = (isset($_GET['sent']) && !empty($_GET['sent']))?$sent:false;

if($sent) echo 'whatever data you want back';

Just make sure that you actually get the alert, and if so , move on from there to build the PHP file as needed for your data.

Hope this assists, Shai.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜