Extraer un valor devuelto por una función.

  • Autor Autor Okaro
  • Fecha de inicio Fecha de inicio
Okaro

Okaro

Épsilon
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Saludos!!

No soy nada bueno con esto del Jquery, así que lo poco que hago es a base de tutoriales. El caso es que he encontrado esta función que lo que hace en Wordpress, es subir una imagen del ordenador local.

Insertar CODE, HTML o PHP:
function funcThree () {   
  var formData = new FormData();
  formData.append("action", "upload-attachment");
                
  var fileInputElement = document.getElementById("input-image-upload");
  formData.append("async-upload", fileInputElement.files[0]);
  formData.append("name", fileInputElement.files[0].name);
                                      
  //also available on page from _wpPluploadSettings.defaults.multipart_params._wpnonce
  <?php $my_nonce = wp_create_nonce('media-form'); ?>
  formData.append("_wpnonce", "<?php echo $my_nonce; ?>");
  var xhr = new XMLHttpRequest();
  xhr.onreadystatechange=function(){
   if (xhr.readyState==4 && xhr.status==200){
      console.log(xhr.responseText);
    }
  }

  xhr.open("POST","/wp-admin/async-upload.php",true);
  xhr.send(formData);
}

La imagen del formulario la sube correctamente a la librería de Wordpress, pero necesito saber cual es el ID que le asigna a la imagen que acaba de subir.

En la consola veo el resultado de la operación, que es la siguiente:

Insertar CODE, HTML o PHP:
{"success":true,"data":{[B]"id":2038[/B],"title":"panpie0043775","filename":"panpie00437754.jpg","url":"http:\/\/www.xxx.com\/wp-content\/uploads\/2015\/09\/panpie00437754.jpg","link":"http:\/\/www.xxx.com\/?attachment_id=2038","alt":"","author":"34","description":"","caption":"","name":"panpie0043775-5","status":"inherit","uploadedTo":0,"date":1443543918000,"modified":1443543918000,"menuOrder":0,"mime":"image\/jpeg","type":"image","subtype":"jpeg","icon":"http:\/\/www.xxx.com\/wp-includes\/images\/media\/default.png","dateFormatted":"septiembre 29, 2015","nonces":{"update":"853005925d","delete":"8a8cccd497","edit":"3d374e2b29"},"editLink":"http:\/\/www.xxx.com\/wp-admin\/post.php?post=2038&action=edit","meta":false,"authorName":"Berberecho","filesizeInBytes":55572,"filesizeHumanReadable":"54 kB","sizes":{"full":{"url":"http:\/\/www.xxx.com\/wp-content\/uploads\/2015\/09\/panpie00437754.jpg","height":700,"width":500,"orientation":"portrait"},"pluto-index-width":{"height":560,"width":400,"url":"http:\/\/www.xxx.com\/wp-content\/uploads\/2015\/09\/panpie00437754-400x560.jpg","orientation":"portrait"}},"height":700,"width":500,"orientation":"portrait","compat":{"item":"","meta":""},"filesize":"54 kB"}}

Puedo obervar casi al principio que ahí está el id que quiero obtener, pero no tengo ni idea de como hacerlo.

Si alguien me pone sobre la pista, estaría muy agradecido.

Un Saludo.
 
Última edición:
Intenta algo como:

PHP:
var json = JSON.parse(xhr.responseText);
var id = json.data.id;

Saludos.
 
Buff!! Gracias, pero de corazón!!

Llevaba toda la tarde y no sabía como hacerlo.

Ale, algo que no se me olvidará si me vuelve a pasar.

Gracias de nuevo.

Un Saludo.
 
Atrás
Arriba