我将使用ajax发送到php文件并将其插入mysql数据库后,从xmlhttp请求获取值时遇到问题。我从yahoo finance api获得了你可以在html片段中看到的输出。之后,应将此html元素的值发送到文件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>
的javascript:
var outputt = $('#output').text();
$.ajax({
type: "POST",
dataType: "json",
url: "insertvolume.php",
data: {myData: outputt},
success: function(data){
//alert('Items added');
}
});
来自insertvolume php的一些代码:
$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();
}
答案 0 :(得分:2)
解码数据后,您无法直接检索json数据。我们应该为此创造对象。在这里,我将为您提供如何访问json值的参考链接。
答案 1 :(得分:1)
在javascript代码中,它被写为 var outputt = $(&#34; #output&#34;).val();
但是div没有价值。内容存在于div中。所以将行代码更改为
var outputt = document.getElementById(&#39; output&#39;)。textContent and try。
现在您可以在javascript中访问该数组。但是我们无法从您的线路访问输出代码的数据。
答案 2 :(得分:1)
在ajax调用中删除行
contentType:“application / json; charset = utf-8”,
然后执行。它会起作用