Dn91 Ответов: 2

Неожиданный токен D в JSON в позиции 0


Всем привет,

Я создал функцию updateprintingqc (), которая работает следующим образом

пользователь нажмет на кликабельную кнопку для обновления данных
2.когда пользователь нажмет на кнопку ОК,фиктивные данные будут созданы на основе основных данных, показанных в ссылке ниже изображения

Моя ошибка

Когда пользователь нажимает кнопку в 1 - й раз,функция работает нормально.Но когда пользователь нажимает на кнопку во 2-й раз,возникает ошибка.

Вот мое кодирование на javascript:
function updateprintingqc(this_, idschedule,idmsul,articleno,part_name,remain) {
  var conf = confirm("Are you choose to Update this Row of Record?");
    if (conf == true) {
        var url = "msp/updateqc?id=" + idschedule + "&idmsul=" + idmsul+"&articleno=" + articleno + "&part_name=" + part_name +"&remain="+remain ;
        $.ajax({
            type    : "get",
            url     : url,
            success : function(data) {
                var obj = jQuery.parseJSON(data);
                if (obj.status == 'Complete') {
                    displaymsg('Update Record', obj.msg);
                    oTable.fnStandingRedraw();
                }
            }
        });
    }
}


а вот мой код на php :

function updateqc() {
     $id        = $this -> input -> get('id', TRUE);
     $idmsul    = $this -> input -> get("idmsul");
     $articleno = $this -> input -> get("articleno");   
     $part_name = $this -> input -> get("part_name");   
     $remain       = $this -> input -> get("remain");
     $checking  = "select * from sindi_printing_qc_log where type='dummy'and idschedule='{$id}' ";
        $checkresult = count($this -> global_model -> query($checking) -> row());
        if($checkresult > 0 ){
            echo "Dummy already exist.";
        } else {
            $temp = array(
                "printing_log"=> 0,
                "idmsul"      => $idmsul,
                "articleno"   => $articleno,
                "part_name"   => $part_name,
                "qty"         => $remain,
                "pass"        => $remain,
                "reject"      => 0,
                "repaired"    => 0,
                "replaced"     => 0,
                "missing"     => 0,
                "procedure"   => 2,
                "addby"     => "LukeSkyWalker",
                "isvalid"     => 1,
                "updateby"    => "LukeSkyWalker",
                "updatedate" => date("y-m-d H:i:s"),
                "idschedule"  => $id,
                "type" => "Dummy"
            );
            $this -> db -> insert("sindi_printing_qc_log",$temp);
            $msg  = array('status' => 'Complete', 'msg' => 'Update Record ' . $id . ' Completed !');
            echo json_encode($msg);
        }
  }



Пожалуйста, может ли кто-нибудь помочь мне в этой проблеме??

Спасибо.

Что я уже пробовал:

Я попытался найти похожую тему по этой ошибке и изменить ее
var obj = jQuery.parseJSON(data);
к Джону.Преобразовать в строки(сведения)
но все то же самое..

это должны быть данные
{"aaData":[[1,"Back OD Band Pvc Sheet","0","0","0","0","Dummy"],[2,"Back OD Band Pvc Sheet","462","25","0","0","normal"],[3,"Back OD Band Pvc Sheet","496","14","6","8","normal"],[4,"Back OD Band Pvc Sheet","62","0","0","0","normal"]]}

Graeme_Grant

Каково значение параметра" данные", если вы устанавливаете точку останова на этой строке?

var obj = jQuery.parseJSON(data);

Пожалуйста, нажмите на виджет "улучшить вопрос" и вставьте туда содержимое данных... Если вы не уверены, как это сделать, то, пожалуйста, следуйте этим инструкциям: Как мне улучшить свой вопрос? - Код проекта Быстрые ответы часто задаваемые вопросы[^]

PIEBALDconsult

Данные, которые вызывают проблему, вероятно, более важны, чем код. Пожалуйста, используйте "улучшить вопрос", чтобы включить эти данные.

Mohibur Rashid

я вижу, что вы используете переменную $msg, но она не содержит ожидаемых данных.

2 Ответов

Рейтинг:
9

Member 13829293

Вы ожидаете ответа JSON. Но вместо этого вы можете получить ответ HTML/XML. Это может быть причиной вашей ошибки.


Рейтинг:
14

Graeme_Grant

Я вижу обновление с данными. Вы говорите:

Цитата:
это должны быть данные


Ошибка, которую вы видите, говорит "синтаксическая ошибка" - это означает, что то, что пытается быть проанализировано, не является допустимым - синтаксическая ошибка. Далее он говорит: "неожиданный токен D в позиции 0". Это означает, что "синтаксическая ошибка" - это самый первый символ. Пример данных показывает первый символ как " { " , который является допустимым. На самом деле я проверил приведенные выше данные, и ошибки нет.

Это убедительно свидетельствует о том, что то, что вы опубликовали выше, не является тем, что говорит вам отладчик. Что вы видите, используя инструменты отладки, когда он запускается?


Dn91

Я должен выяснить, что вызывает эту ошибку.В любом случае спасибо, что нашли время ответить на мой пост.
Хорошего дня.

Graeme_Grant

- Рад слышать ... обычно что-то простое ;)

Dn91

Привет Graeme_Grant,

Извините, что снова побеспокоил.У меня есть еще один вопрос:
1.Как использовать атрибуты colspan, чтобы объединить кнопки в столбце на основе динамических данных?
Вот изображение моих данных в таблице
Использование Colspan

а вот кодировка для него на javascript:

var DrillStructure = {
  
  "Cutting" : {
    "dDom" : "<th>No</th><th>Part Name</th><th>Raw Material</th><th>Order Qty</th><th>Qty</th><th>Marker 's Size</th><th>Req Hrs</th><th>Cutting Start</th><th>Cutting End</th><th>Status</th></tr></thead>",
    "link" : "msp/loopForCutting"
  },
  "Printing" : {
    "dDom" : "<th>No</th><th>Part Name</th><th>Order Qty</th><th>Qty</th><th>Colour Print</th><th>Type</th><th>No of Up</th><th>Req Hrs</th><th>Printing Start</th><th>Printing End</th><th>Status</th><th >Action</th></tr></thead>",
    "link" : "msp/loopForCutting"
  }
 
};


а это и есть php код:

// Display the data in the form i wanted
		$iloop = 1;
		foreach ($rResult->result_array() as $aRow) { 
       if($department == 'Printing') {
        $material = $aRow['material_part'];
        $qty      = $aRow['qty'];
        $demand   = $aRow['UPH'];
        $colprint = $aRow['colprint'];
        $noup     = $aRow['noup'];
        $reqhrs   = ((($colprint * $qty) / $demand) / $noup);
        $btn      = "<a class='btn'  data-mat = \"{$material}\" onclick=\"openPrintingLog(this, 'prnlog','{$iloop}', '{$idschedule}')\"></a>";
        
        $row[0]   = $btn;
        $row[1]   = $material;
        $row[2]   = $aRow['qty'];
        $row[3]   = $aRow['prnqty'];
        $row[4]   = $aRow['colprint'];
        $row[5]   = $aRow['coltype'];
        $row[6]   = $aRow['noup'];
        $row[7]   = number_format($reqhrs,2,'.','');
        $row[8]   = "<span class='editable' data-from='part' data-field='printingstart' data-id='{$aRow['idschedulepart']}'>{$aRow['printingstart']}</span>";
        $row[9]   = "<span class='editable' data-from='part' data-field='printingend'   data-id='{$aRow['idschedulepart']}'>{$aRow['printingend']}</span>";
        $row[10]  = $aRow['status'];
	   $row[11] = "<a class='btn btn-small' onclick='open_wrappers();'>Complete</a>"; //added by hyj
      }
      
			$iloop = $iloop + 1;
			$output['aaData'][] = $row;
		}


Не могли бы вы помочь мне в этом деле?Спасибо

Graeme_Grant

Это новый вопрос. Не могли бы вы перенести это на новый вопрос Q? Спасибо. :)