Javascript 解码多维数组并插入mysql
在使用ajax将xmlhttp请求发送到php文件并将其插入mysql数据库后,我很难从xmlhttp请求中获取值。我从yahoo finance api中获得了可以在html代码段中看到的输出。之后,这个html元素的值应该发送到文件Javascript 解码多维数组并插入mysql,javascript,php,mysql,json,Javascript,Php,Mysql,Json,在使用ajax将xmlhttp请求发送到php文件并将其插入mysql数据库后,我很难从xmlhttp请求中获取值。我从yahoo finance api中获得了可以在html代码段中看到的输出。之后,这个html元素的值应该发送到文件insertvolume.php 成功发送后,我将数据保存到名为$jsonString的变量中并对其进行解码。然后我尝试从数组中插入一个特定的值到我的mysql数据库中,但它不起作用。我认为问题是这个值被写入了其他数组,但我不知道如何写入它。我只需要名为resul
insertvolume.php
成功发送后,我将数据保存到名为$jsonString
的变量中并对其进行解码。然后我尝试从数组中插入一个特定的值到我的mysql数据库中,但它不起作用。我认为问题是这个值被写入了其他数组,但我不知道如何写入它。我只需要名为results
的数组,有什么提示吗
html:
<div id="output">{"query{"count":1,"created":"20160215T09:15:04Z","lang":"deDE","results":{"quote":{"symbol":"ZN","Ask":"2.05","LastTradeRealtimeWithTime":null,"ChangePercentRealime":null,"ChangeFromYearHigh":"-0.45","LastTradeWithTime":"4:00pm<b>1.81</b>",astTradePriceOnly":"1.81", "Volume":"500","HighLimit":null,"LowLimit":null,"DaysRange":"1.781"}}}}</div>
var outputt = $('#output').text();
$.ajax({
type: "POST",
dataType: "json",
url: "insertvolume.php",
data: {myData: outputt},
success: function(data){
//alert('Items added');
}
});
$jsonString = $_POST['mydata'];
$jsonArray = json_decode($jsonString, true);
$jsonArray1 = $jsonArray['query']['results']['quote'];
if ($stmt = $mysqli->prepare('INSERT INTO volume ( stocksymbol, volume, time) VALUES ( ?, ?, now())')) {
/* bind parameters for markers */
$stmt->bind_param($jsonArray1['symbol'], $jsonArray1['volume']);
/* execute query */
$stmt->execute();
/* close statement */
$stmt->close();
}
一些来自insertvolume php的代码:
<div id="output">{"query{"count":1,"created":"20160215T09:15:04Z","lang":"deDE","results":{"quote":{"symbol":"ZN","Ask":"2.05","LastTradeRealtimeWithTime":null,"ChangePercentRealime":null,"ChangeFromYearHigh":"-0.45","LastTradeWithTime":"4:00pm<b>1.81</b>",astTradePriceOnly":"1.81", "Volume":"500","HighLimit":null,"LowLimit":null,"DaysRange":"1.781"}}}}</div>
var outputt = $('#output').text();
$.ajax({
type: "POST",
dataType: "json",
url: "insertvolume.php",
data: {myData: outputt},
success: function(data){
//alert('Items added');
}
});
$jsonString = $_POST['mydata'];
$jsonArray = json_decode($jsonString, true);
$jsonArray1 = $jsonArray['query']['results']['quote'];
if ($stmt = $mysqli->prepare('INSERT INTO volume ( stocksymbol, volume, time) VALUES ( ?, ?, now())')) {
/* bind parameters for markers */
$stmt->bind_param($jsonArray1['symbol'], $jsonArray1['volume']);
/* execute query */
$stmt->execute();
/* close statement */
$stmt->close();
}
在javascript代码中,它被写成 var output=$(“#output”).val() 但是div没有这个值。内容存在于div中。因此将行代码更改为 var outputt=document.getElementById('output')。textContent并重试
现在您可以用javascript访问数组了。但是我们无法从您的行中访问输出代码的数据。在javascript代码中,它被写成 var output=$(“#output”).val() 但是div没有这个值。内容存在于div中。因此将行代码更改为 var outputt=document.getElementById('output')。textContent并重试
现在您可以用javascript访问数组了。但是我们无法从您的代码行访问输出代码的数据。在ajax调用中删除该行 contentType:“应用程序/json;字符集=utf-8”
然后执行。它将在ajax调用中起作用,删除该行 contentType:“应用程序/json;字符集=utf-8”
然后执行。它将在解码数据后工作,您无法直接检索json数据。我们应该为此创建对象。这里我给您提供了如何访问json值的参考链接
解码数据后,无法直接检索json数据。我们应该为此创建对象。这里我给您提供了如何访问json值的参考链接
我无法判断该JSON是否无效,或者在粘贴时它被弄乱了。虽然如此,其中还是有换行符。为了更好地阅读,我做了这些换行符,但我可以删除它们。你的html输出是这样的:
{“query{“count”:1,“created”:“20160215T09:15:04Z”,“lang”:“deDE”,“results”:{“quote”:{“symbol”:“ZN”,“Ask”:“2.05”,“LastTradeRealtimeWithTime”:null,“changePercentRealTime”:null,“ChangeFromYearHigh”:“-0.45”LastTradeWithTime:“4:00pm1.81”,仅ASTTradePrice:“1.81”,“上限”:null,“下限”:null,“日期范围”:“1.781}”
我不知道JSON是无效的,还是粘贴时弄乱了。实际上,其中有换行符。为了更好地阅读,我做了这些换行符,但我可以删除它们。你的html输出是这样的:{“query{”count:1,“created”:“20160215T09:15:04Z”,“lang”:“deDE”,“results”:{“quote”:“{”symbol:“ZN”,“Ask”:“2.05”,“LastTradeRealtimeWithTime”:null,“ChangePercentRealTime”:null,“ChangeFromYearHigh”:“-0.45”,“LastTradeWithTime”:“4:00pm1.81”,astTradePriceOnly:“1.81”,“HighLimit”:null,“LowLimit”:null,“DaysRange”:“1.781}”
噢,谢谢你,我不知道div没有值属性,但它没有改变行为上的某个东西。噢,谢谢你,我不知道div没有值属性,但它没有改变行为上的某个东西。我删除了行,但什么也没有发生。我删除了行,但什么也没有发生。我可以这样解码:'$jsonArray=json\u decode吗($jsonString,true);`into-mysql instad的`$jsonArray1['volume']`this:''$query->results[0]->{“quote”}->volume´?当我选择这个的特定值时,我不理解规则/语法:'$query->results[0]->{“quote”}->volume`是这样的吗?我可以这样解码:'$jsonArray=json\U解码($jsonString,true)?