尝试使用ajax将js变量传递给php

时间:2015-07-02 11:13:57

标签: javascript php jquery ajax

正如标题所说,我试图将几个js变量传递给php文件。到目前为止,这是我的代码。

JS:

$.ajax({
    method: "POST",
    url: "sendDataToDB.php",
    data: {
        mainVideoData: mainVideoTitle
    },
    success: function(data) {
        alert("data sent");
    },
    error: function(data) {
        alert("Data sending failed");
    }
});

sendDataToDB.PHP:

<?php
$temp = $_POST["mainVideoData"];
echo $temp;
?>

我在不同的网站上看到了这段代码,但由于某些原因它不适合我。它说'mainVideoData'undefined,这基本上意味着它不存在。

有谁知道我做错了什么? 谢谢!

编辑:

我已经阅读了一些建议,并决定用他人给我的代码制作一个全新的文件。这是我的整个php文件和整个js文件。

php.php:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script src="jquery-2.1.3.js" type="text/javascript"></script>
    <script src="getApiData.js" type="text/javascript"></script>
    <meta charset="utf-8"/>
    <link rel="stylesheet" href=""/>
</head>
<body>

</body>
</html>

<?php
if(isset($_POST['mainVideoData'])){
    $temp = $_POST["mainVideoData"];
    echo $temp;
}
?>

这是我的整个js文件:

$(document).ready ( function(){
    var mainVideoTitle = "Hello";
    $.ajax({
        method: "POST",
        url: "php.php",
        data: {
            mainVideoData: mainVideoTitle
        },
        success: function(data) {
            alert("data sent");
        },
        error: function(data) {
            alert("Data sending failed");
        }
    });
});

它只会给我一个警告说“发送的数据”,但它没有回应“你好”。 有谁知道什么是错的?

编辑2:

所以我在我的php文件中添加了一些应该将我的$ temp放在数据库中的代码。可悲的是,这不起作用。当我用正常值替换$ temp时,例如&#39;你好&#39;它把它放在我的数据库中。当我使用$ temp时,它会给我这个错误:

错误:INSERT INTO youtubevideos(类别)  VALUES(Wiz Khalifa - 再来一次见到你。查理Puth [官方视频]愤怒的7原声带)你的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以便在Khalifa附近使用正确的语法 - 再次见到你。查理Puth [官方视频]愤怒的7原声带&#39;在第2行

正如你所看到的,它确实给了我正确的价值,它也在VALUES中放置了正确的价值。但由于某种原因,它仍然给我这个错误。有什么理由吗?

2 个答案:

答案 0 :(得分:1)

  
      
  1. jQuery库肯定包含在内
  2.   
  3. 检查php file的路径是否有效
  4.   
  5. 检查mainVideoTitle是否已定义
  6.   

试试这个。

<强>脚本:

 $(document).ready ( function(){
   var mainVideoTitle = "Hello";
    $.ajax({
        method: "POST",
        url: "sendDataToDB.PHP",
        data: {
            mainVideoData: mainVideoTitle
        },
        success: function(data) {
            alert("data sent");
        },
        error: function(data) {
            alert("Data sending failed");
        }
    });

});

<强> sendDataToDB.PHP:

<?php
if(isset($_POST['mainVideoData'])){
$temp = $_POST["mainVideoData"];
echo $temp;
}
?>

我希望这有助于实现您的结果!!!

答案 1 :(得分:0)

试试这个它会工作。数据将被成功捕获。

$.ajax({
    method: "POST",
    url: "sendDataToDB.php",
    data: {
        mainVideoData: mainVideoTitle
    },
    success: function(data) {
        console.log(data);
        alert("data sent");
    },
    error: function(data) {
        alert("Data sending failed");
    }
});