我现在已经解决了这个问题一段时间了,我仍然无法理解为什么它不起作用。我尝试了多种可能性,但没有一种可行,所以有人可以帮助我如何通过Ajax传递var superstr = $( "#savelyric" ).text();
并进入我的数据库吗?这就是我一直在试验的内容:
function saveinPHP() {
//alert("Came here");
var lyr = $( "#savelyric" ).text();
var superstr = { lyricsave:lyr }
//var superstr = 'lol';
//var hashString = "lol";
//var data = { yoururl:'hmm'}
$.ajax({
type: "POST",
url: "includes/sendlyrics.php",
data: superstr,
success: function(data){
alert("***DATA***"+data+"***MSG***");
alert("Settings has been updated successfully." + data + "~~~" + hashString);
//window.location.reload(true);
}
});
}
正如你所看到的,我已尝试过多种方式,但它永远不会奏效。我不明白你到底是怎么做到的。 PHP文件是这样的:
<?php
include ('db_connect.php');
$data = $_POST['data'];
$query = "UPDATE song SET time='".$data."' WHERE id='1'";
mysqli_query($query);
?>
是的,我完全清楚我的数据库容易受到SQL注入攻击,一旦我开始工作,我就会解决这个问题。
这是我尝试过的,但如果您认为有必要,我可以做完全不同的事情。
现在我得到了JS:
function saveinPHP() {
var superstr = $( "#savelyric" ).text();
$.ajax({
type: "POST",
url: "includes/sendlyrics.php",
data: {superstr: superstr},
success: function(data){
alert("***DATA***"+data+"***MSG***");
alert("Settings has been updated successfully." + data + "~~~");
//window.location.reload(true);
}
});
和PHP
<?php
include ('db_connect.php');
$data = $_POST['superstr'];
$query = "UPDATE song SET lyrtime='".$data."' WHERE id='1'";
mysqli_query($query);
?>
答案 0 :(得分:0)
您正试图通过var superstr = $( "#savelyric" ).text();
作为您的问题说明,但在您的代码中,您实际上正在分配:
var superstr = { lyricsave:lyr }
将其更改为:
var superstr = $( "#savelyric" ).text();
更新(根据Kevin B的评论)
您还需要更改以下内容:
data: {superstr: superstr},
并在你的PHP中:
$data = $_POST['superstr'];
另外,为什么要将其设置为time
列?我还没有看过你的表,但是一个疯狂的猜测会告诉我时间是一个不同的数据类型(TIMESTAMP / DATETIME可能?)并拒绝你的数据。您是否要将其设置为名为data
或lyrics
的列或包含文本的任何内容?
答案 1 :(得分:0)
只更改此行:
var superstr = { lyricsave:lyr }
带
var superstr = { data:lyr }