【问题标题】:How to decode / separate php encoded json in jquery.?如何在jquery中解码/分离php编码的json。?
【发布时间】:2017-02-23 08:18:57
【问题描述】:

我想将我编码的 json 解码为 jquery 并将所有分离的代码设置为不同的表单元素。在这里我发布我的所有代码。

php 代码..

<?php
    if(isset($_POST['passid']) === true && empty($_POST['passid'])=== false)
{
    //$q = $_POST['increament'];[![enter image description here][1]][1]
    mysql_connect('localhost','root', '');
    mysql_select_db('kmk_inst');
    $query = mysql_query("select Q_Id, QP_Name, Question from question_paper where Q_Id = '".mysql_real_escape_string(trim($_POST['passid']))."'")
    or die("Wrong Query".mysql_error());
    //echo (mysql_num_rows($query) !== 0) ? mysql_result($query, 0 , 'QP_Name'): 'passid not found';
    //$row = mysql_fetch_array($query);

    if ( mysql_num_rows($query) !== 0 ) {
        $data = json_encode(mysql_fetch_assoc($query));
        echo $data;
    }
?>

HTML 代码

<a class="btn btn-primary col-xs-12 col-lg-2" style="float: right; margin:10px;" id="savenext" name="savenext" onclick="return dataPass()">Save & Next</a></span>
<input type="text" style="width: 410px;text-align: center; margin: 0px;" class="onlyNumber form-control pull-left" id="ques" value="1" name="ques" />
<input type="text" style="width: 410px;text-align: center; margin: 0px;" class="onlyNumber form-control pull-left" id="QPt" value="1" name="QPt" />

** jquery **

$('a#savenext').on('click',function(){
var passid = $('input#ques').val();
//var name = $('input#QPt').val();
if($.trim(passid) != '')
{
        $.post('retrivedata.php', { passid: passid}, function(data){

            //$.each(data, function(i, name) {
            //      alert(name.Q_Id);
            //});
            $('div#datatable').text(data);
            //$('input#QPt').text(QPt);
        });
    }
});

我是 jquery Ajax 和 JavaScript 的新手,所以我无法处理它。任何帮助表示感谢。

目前我得到这样的结果。

【问题讨论】:

  • JSON.parse(data) ?
  • 谨慎使用mysql 函数,因为它们已被mysqliPDO 取代。此外,您的代码对 SQL 注入开放
  • 不清楚您到底要什么。请说明。
  • 使用JSON.parse(data)$.parseJSON(data)
  • 如何在不同的表单元素中存储/设置它。?

标签: javascript php jquery json ajax


【解决方案1】:

在 php 中设置正确的标题

header('Content-Type: application/json');
$data = json_encode(mysql_fetch_assoc($query));

jquery 会负责解析

要将数据添加到您的页面,请使用附加

      $('body').append('<form><p>'+data.Question+'<input value="'+data.QP_Name+'"></from>');

var data = {
  "Q_Id": "1",
  "QP_Name": "test1",
  "Question": "Which is indian capital.?"
};
$('#ques').val(data.Question);
$('#QPt').val(data.QP_Name);
$('body').append('<form><p>' + data.Question + '<input value="' + data.QP_Name + '"></from>');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a class="btn btn-primary col-xs-12 col-lg-2" style="float: right; margin:10px;" id="savenext" name="savenext" onclick="return dataPass()">Save & Next</a></span>
<input type="text" style="width: 410px;text-align: center; margin: 0px;" class="onlyNumber form-control pull-left" id="ques" value="1" name="ques" />
<input type="text" style="width: 410px;text-align: center; margin: 0px;" class="onlyNumber form-control pull-left" id="QPt" value="1" name="QPt" />

【讨论】:

  • 我已经尝试过了,但没有用..任何其他解决方案..请
  • 不工作是什么意思?能否提供一个json数据样本?
  • {"Q_Id":"1","QP_Name":"test1","Question":"Which is Indian capital.?"} 这是我当前的输出。没有你的代码。
  • 那么你就不需要循环了
  • 当我使用您的代码时,它会显示一些文本,例如“未指定字段”。
【解决方案2】:

将 json 设置为 ajax 调用返回的数据类型,如下所示:

$('a#savenext').on('click',function(){
var passid = $('input#ques').val();
//var name = $('input#QPt').val();
if($.trim(passid) != '')
{
        $.post('retrivedata.php', { passid: passid}, function(data){

            //$.each(data, function(i, name) {
            //      alert(name.Q_Id);
            //});
            $('div#datatable').text(data);
            //$('input#QPt').text(QPt);
        },'json');
    }
});

【讨论】:

  • 我已经在检索 json 数组但我无法将它们分开。?
  • “分离”是什么意思?
  • 我想将所有列存储到不同的不同 html 字段中,现在我明白了。
  • 请更正您的代码并让其他人知道您为使其正常工作所做的工作。如果给出的任何答案是正确的,请标记它
【解决方案3】:
$('a#savenext').on('click',function(){
  var passid = $('input#ques').val();

if($.trim(passid) !=)
{
    $.post('retrivedata.php', {passid: passid}, function(data){          

        var da = JSON.parse(data);              
        $('div#datatable').text(da.QP_Name);            
        //alert(da.QP_Name);             
    });

  }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    • 2020-12-15
    • 2013-10-10
    • 2021-12-13
    • 1970-01-01
    相关资源
    最近更新 更多