2013-05-23 2 views
0

Мне хотелось бы сохранить запись в мой db MySql с помощью ajax.Как вернуть ответ от json_encode

У меня есть кнопка на моей странице, которая вызывает метод в javascript. Метод javascript с jSON вызывает страницу в PHP для записи записи в мою БД.

Теперь запись записывается в БД, но я не могу прочитать ответ. Я хотел бы, если запись записывается на этом методе, верните «ОК», если запись не записывается в БД, метод retunr меня «KO».

Это мой код JavaScript:

function saveRiga(){ 

    var codiceBarre = document.getElementById("codiceBarre").value; 
    var nome = document.getElementById("nomeArticolo").value; 


    var quantita=document.getElementById("quantita").value; 
    if(quantita == "" || quantita ==null){ 
     alert("Campo quantità Obbligatorio"); 
     return; 
    } 

    if(isNumeric(quantita)){ 
     var idOrdine =69; 
     var $j = jQuery.noConflict(); 

     $j.getJSON('salvaArticoliOrdine.php', {codiceBarre: codiceBarre, nome: nome, quantita: quantita, idOrdine: idOrdine, nomeMetodo: 'salva'}, function(data) { 

      document.getElementById("codiceBarre2").value="ciccio"; 
     $j.each(data,function(i,item){ 
      alert(item); 
      alert(i); 
     }); 
     }); 

    }else{ 
     alert("Inserire solo numeri interi positivi"); 
     return; 
    } 
} 

Это код PHP

if (isset($_REQUEST['codiceBarre']) && isset($_REQUEST['nome']) && isset($_REQUEST['quantita'])) { 

    $codiceBarre = mysql_real_escape_string(htmlentities($_REQUEST['codiceBarre'])); 
    $nomeArticolo = mysql_real_escape_string(htmlentities($_REQUEST['nome'])); 
    $quantita = mysql_real_escape_string(htmlentities($_REQUEST['quantita'])); 
    $ultimo_id = mysql_real_escape_string(htmlentities($_REQUEST['idOrdine'])); 
    $nomeMetodo= mysql_real_escape_string(htmlentities($_REQUEST['nomeMetodo'])); 
    if($nomeMetodo == 'salva'){ 
     $query = "INSERT INTO DETTORDINI (CODIORDINE,CODICEART,NOMEARTICOLO,QUANTITA,PREZZOCAD,PREZZOTOT) VALUES (".$ultimo_id.",'".$codiceBarre."','".$nomeArticolo."',".$quantita.",0,0);"; 
     mysql_query($query); 
     if (!$query) { 
      echo json_encode("Nessun risultato disponibile"); 
     }else{ 
      $arr = array ('a'=>1,'b'=>2); 
      echo json_encode($arr); 
      //echo json_encode($ultimo_id); 
     } 
    } 
} 

Можете ли вы мне помочь?

+2

[** Пожалуйста, не используйте 'mysql_ *' функции в новом коде **) (http://bit.ly/phpmsql). Они больше не поддерживаются [и официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). См. [** красное поле **] (http://j.mp/Te9zIL)? Узнайте о [* подготовленных операторах *] (http://j.mp/T9hLWi) и используйте [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/ mysqli) - [эта статья] (http://j.mp/QEx8IB) поможет вам решить, какой из них. Если вы выберете PDO, [здесь хороший учебник] (http://www.brightmeup.info/article.php?a_id=2). –

+0

'echo json_encode (array ('error' =>« Nessun risultato disponibile »));' – Robert

+0

попробуйте настроить заголовок ответа на страницу на 'header ('Content-type: application/json');' –

ответ

0

заменить это:

if (!$query) { 
    echo json_encode("Nessun risultato disponibile"); 
}else{ 
    $arr = array ('a'=>1,'b'=>2); 
    echo json_encode($arr); 
    //echo json_encode($ultimo_id); 
} 

этим:

if (mysql_affected_rows()<=0) { 
    echo json_encode("Nessun risultato disponibile"); 
}else{ 
    $arr = array ('a'=>1,'b'=>2); 
    echo json_encode($arr); 
    //echo json_encode($ultimo_id); 
} 

Таким образом, вы будете испытывать, если строка была действительно вставлена ​​или нет ...

+0

Хорошо, я заменил ваш код, но я думаю, проблема в этом коде $ j.getJSON ('salvaArticoliOrdine.php', {codiceBarre: codiceBarre, nome: nome, quantita: quantita, idOrdine: idOrdine, nomeMetodo: 'salva'}, function (data) { document.getElementById ("codiceBarre2") значение = "Ciccio";. $ j.each (данные, функция (я, п) { оповещения (пункт); предупреждение (я); }); }); потому что я не вижу значение «ciccio» в текстовом поле, и я не вижу предупреждения. Где моя проблема? – Michele

+0

замените это: echo json_encode («Nessun risultato disponibile»); следующим образом: echo json_encode (array ('error' => "Nessun risultato disponibile")); как @Robert упоминается там в комментариях. Во-вторых, убедитесь, что определена функция isNumeric. если да, проверьте консоль на наличие ошибок JavaScript. – CodeBird

Смежные вопросы