【问题标题】:Trying to pass js variables to php with ajax尝试使用ajax将js变量传递给php
【发布时间】:2015-07-02 11:13:57
【问题描述】:

正如标题所说,我正在尝试将几个 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 替换为像 'hello' 这样的正常值时,它会将它放在我的数据库中。当我使用 $temp 时,它给了我这个错误:

错误:插入到 youtubevideos(类别) VALUES(Wiz Khalifa - See You Again ft. Charlie Puth [官方视频] Furious 7 原声带)
您的 SQL 语法有误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的“Khalifa - See You Again ft. Charlie Puth [官方视频] Furious 7 Soundtrack)”附近使用正确的语法

如您所见,它确实给了我正确的价值,而且它也将正确的价值放在了 VALUES 中。但由于某种原因,它仍然给我这个错误。有什么原因吗?

【问题讨论】:

  • 试试data:{mainVideoData: "mainVideoTitle"}
  • 你在哪里定义mainVideoTitle
  • mainVideoTitle 是我之前做的一个变量
  • 你是否包含了 jQuery?
  • 是的,我确实包含了 jquery

标签: javascript php jquery ajax


【解决方案1】:
  1. 绝对包含jQuery库
  2. 检查php file的路径是否有效
  3. 检查mainVideoTitle是否定义

试试这个之后。

脚本:

 $(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. jquery 库绝对包括在内。 2. 嗯,我该如何检查呢? 3. mainVideoTitle 被定义。我试过你的代码,它仍然无法识别 mainVideoData
  • 我自己工作得很好!它返回了字符串'hello'并警告'数据已发送'。
  • 它只为我显示“已发送数据”。由于某种原因,它不会返回字符串“hello”。
  • 你想提醒字符串'hello'作为成功数据吗?
  • 使用这个,success: function(data) { alert(data); },
【解决方案2】:

试试这个,它会起作用。数据将被成功捕获。

$.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");
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    • 1970-01-01
    • 1970-01-01
    • 2011-09-02
    • 1970-01-01
    相关资源
    最近更新 更多