Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 解码多维数组并插入mysql_Javascript_Php_Mysql_Json - Fatal编程技术网

Javascript 解码多维数组并插入mysql

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

在使用ajax将xmlhttp请求发送到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","resu‌​lts":{"quote":{"symbol":"ZN","Ask":"2.05","LastTradeRealtimeWithTime":null,"Chang‌​ePercentRealime":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","resu‌​lts":{"quote":{"symbol":"ZN","Ask":"2.05","LastTradeRealtimeWithTime":null,"Chang‌​ePercentRealime":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)?