¿Como obtengo los datos de un input de tipo array en ajax?

tengo un proyecto de punto de venta y para los tickets (o comprobantes de pago), uso ajax. La cuestión es que hago la venta mediante php y al guardarla envío los datos por ajax a un script de php.

Aquí recojo los datos de la venta, para ahorrarme inputs de mas decidí meter los detalles del producto en un solo input de tipo array…

<form action="" id="ticketForm" method="post">    <input type="hidden" name="vendedor" id="vendedor"  value="'.$  this->_user['name'].' '.$  this->_user['last_name'].'">';    foreach ($  this->show_tmt_items( $  session_id ) as $  items)    {       $  output .= '<input type="hidden" name="todo[]" id="todo[]" value="'.$  product['name'].'  '.$  items['qty'].'   $  '.number_format($  _SESSION["Total"], 2, '.', ',').'">';    }    $  output .= '    <input type="hidden" value="'.$  sub_total.'" id="totalventa" name="totalventa"> </form> 

En mi archivo de javascript, tengo una función que hace la petición de ajax y otra que hace que se guarde la venta, El id del #myForm donde muestra la venta (o lo que se va a imprimir en el ticket).

swal({    title: "Su cambio es: " + cambio + " Pesos",    type: "warning",    showCancelButton: true,    confirmButtonClass: 'btn-warning',    confirmButtonText: "Aceptar",    closeOnConfirm: false }, function () {    $  ("#myForm").submit();    ticket(); });    function ticket() {           var vendedor = document.getElementById('vendedor').value;           var todo = document.getElementById('todo').value;           var total_venta = document.getElementById('total').value;            // JSON.stringify(todo);           var data_send = 'vendedor='+vendedor+'&todo='+todo+'&total='+total_venta;           alert(data_send);            event.preventDefault();           $  .ajax({             url: 'http://localhost/ImpresionTermica/ticket.php',             type: 'POST',             data: data_send,             success:function(resp){               location.reload();             }           })           return false;         } 

Ya trate de enviar los datos del form del ticket por post pero el total termina siendo el doble (seguramente se suman las variables), enviarlos por ajax es mi unica opcion segura, pero no se como recojer los datos del array todo[] e imprimirlos en php, necesito ayuda

Angular 5 – IE 11 se ralentiza al devolver un array de observables

tengo el siguiente problema a angular 5. Tengo una aplicación que me devuelve una lista de correos, en IE11 tarda 10 segundos en devolver esta lista mientras que en otros navegadores no llega a 1 segundo. Como se requiere que funcione en IE11, agradecería saber que esta mal o cómo se puede optimizar.

Despues de hacer unas pruebas de tiempo hemos acotado que se ralentiza

Adjunto el código:

@Effect() getMails: Observable<MailsActions.MailsActionsAll> = this.actions     .ofType<MailsActions.GetMails>(MailsActions.GET_MAILS)     .pipe(         exhaustMap((action) => {              let handle = {                 id   : '',                 value: '',                 timestamp:'',                 registroInicial:'',                 registroFinal:'',                 searchText:''             };             let searchText='';             if (this.routerState.queryParams['searchText']!=undefined                      && this.routerState.params['searchText']!=''){               searchText=this.routerState.queryParams['searchText'];             }else{                 searchText='';             }              const routeParams = of('labelHandle', 'filterHandle', 'folderHandle');             routeParams.subscribe(param => {                 if ( this.routerState.params[param] )                 {                     handle = {                         id   : param,                         value: this.routerState.params[param],                         timestamp: this.routerState.params['timestamp'],                         registroInicial: this.routerState.queryParams['registroInicial'],                         registroFinal: this.routerState.queryParams['registroFinal'],                         searchText: searchText                     };                 }             });                 return this.mailService.getMails(handle)                 .pipe(                     map((mails: Alerta[]) => {                         return new MailsActions.GetMailsSuccess({                             loaded: handle,                             mails : mails                         });                     }),                     catchError(err => of(new MailsActions.GetMailsFailed(err)))                 );              })         ); 

Despues de hacer unas pruebas de tiempo hemos acotado que se ralentiza en el return, cuando monta el map.

Gracias por la ayuda.

¿Como puedo imprimir en pantalla este Array en PHP?

Me han dejado el siguiente ejercicio en PHP y no tengo idea de cómo debo imprimir correctamente en pantalla este Array, según el ejercicio, debo imprimirlo usando preferiblemente Foreach, ¡Gracias de antemano!

    <?php $  productos=array(      "chocorramo"=>[      "nombre_producto"=>"Chocorramo",      "descripcion"=>[             "empresa"=>[                     "ramo"=>[                         "direccion"=>"carrera 30 sur 56 y 2",                         "oficina"=>"313",                         "director"=>"Rafael pardo",                         "fecha_fundacion"=>"26 agosto 1980"                     ] /*end ramo*/                         ] /*end empresa*/ ,                 "tabla_nutricional"=>[                 "carbohidratos"=>[                     "carbohidratos"=>"37g",                     "fibra_dietetica"=>"3g",                     "azucar"=>"22g"                 ] /*end carbohidratos */ ,                 "grasas"=>[                     "grasas"=>"16g",                     "saturadas"=>"11g",                     "Poliinsaturados"=>"1g",                     "Monoinsaturados"=>"3g",                     "trans"=>"--g"                 ] /* end grasas */,                 "proteinas"=>[                    "proteinas"=>"4g",                    "sodio"=>"85mg",                    "potasio"=>"--mg",                    "colesterol"=>"30mg"                 ] /*end proteinas */,                 "vitaminas"=>[                     "vitamina_a"=>"--%",                     "vitamina_c"=>"--%",                     "calcio"=>"4%",                     "hierro"=>"8%"                 ] /*end vitaminas */                                     ]                  ], /* end descripcion*/                 "lote"=>[                     "id_lote"=>"0-8737-993",                     "vencimiento"=>"12-08-2019",                     "enbase"=>"12-01-2019"                      ],/* end lote */                 "dimensiones"=>[                     "ancho"=>"7",                     "alto"=>"15",                     "peso"=>"50g"                 ], /*end dimensiones */                 "textos"=>[                     "1"=>"Los porcentajes están basados en una dieta de 2000 calorías al día."                 ]     ] );  ?> 

Se supone que debo hacerlo mediante la función Foreach, pero no tengo idea de si únicamente debo añadir uno o varios y además no sé como estructurar dicho foreach. Si me podéis ayudar, os agradecería muchísimo. Nuevamente, muchas gracias de antemano.

Problema leyendo objetos JSON en Array – Typescript

Estoy tratando de llenar mi arreglo ‘enfermedades’ con una petición HttpClient, pero cuando el arreglo ya esta lleno, no puedo acceder a ningún indice de dicho arreglo. Al mostrar por ejemplo this.enfermedades[0] me aparece indefinido. ¿Qué puede ser? O estoy llenando el arreglo de forma incorrecta. Adjunto la imagen del resultado que obtengo Esto es lo que obtengo

findTop() {     return new Promise( resolve => {       setTimeout( () => {         // Arreglo enfermedades inicializado a 0         this.enfermedades = [];         // Ciclo for para llenar el arreglo enfermedades por medio de una petición HttpClient         for (let a = 0; a < this.sintomasFiltrados.length; a++) {           this.dataController.getDiagnostico(this.sintomasFiltrados[a].value).subscribe( resp => {             this.enfermedades.push(...resp.enfer);           });         }         console.log('Enfermedades', this.enfermedades);         // Aparece indefinido         console.log('Enfermedades poisicion 0', this.enfermedades[0]);         resolve();       });     });   }

Algorithm Design: Efficient O(n) algorithm to get the ith to jth largest elements in an array

I am trying to design an efficient algorithm that retrieves the ith to jth largest elements in an array. For example, if the following array is the input:

[10, 14, 18, 3, 21, 25, 27] i = 2 j = 4 

The following array is returned:

[25, 21, 18] 

18 is the 4th largest element in the array and 25 is the 2nd smallest element in an array. I’ve done a problem where you retrieve a list of the K largest elements in an array: in such a problem, the solution is pretty trivial (using a fixed-size minimum heap of size K to keep track of the K largest elements). In this case however, a heap seems out of reach to use because the minimum heap can only remove the smallest element from the heap (removing the kth smallest element within the heap seems really inefficient).

I could do QuickSelect (j – i) times to get all the elements, but that means doing a linear O(n) walkthrough (j – i) times, which yields a total time complexity of O((j-i) * n), but I was thinking about if it’s possible to quicken the algorithm’s time complexity to just O(n). Is there an O(n) algorithm to solve this problem?


Declaring multi-dimensional array using CFG

I am still juveline to compilers and formal languages. I’ve tried to write context-free grammar (CFG) for a multi-dimensional array, but I am not sure of my solution, so could you suggest your CFG for multi-dimensional array?

<type>:: = int | float | string <array>:: = <type> [<identifier>] | <array> | [<identifier>]  <identifier>::= <letter> | <identifier><letter>|<identifier><digit> <letter>::= a|...|z <digit>::= 0|...|9 

Is this implementation is a true one for multi-dimensional array?

My second question is regarding function invocation as well? I have written the following declaration for function:

<funDeclaration>::= <type> <identifier>(<params>) <statement> | <identifier> (<params> )<statement> 

Without demonstrating , just for clarity and to keep the question short, how to write function invocation?

How to iterate through custom posts and add the title to an array

I am trying to query some custom posts so that I can iterate through them, extract the title of ecah and add the titles into an array. The reason I am doing this is so that I can then create a select field in woocommerce using the array contents to generate the options (haven’t done this bit yet)

Can anyone see where I’m going wrong with this snippet or provide any advice, I can’t get it to work. The site goes down and I get nothing in a var_dump

add_action('woocommerce_after_order_notes', 'custom_checkout_field');  function custom_checkout_field($  checkout)  {  $  args = array(     'post_type'         => 'pickup-point',     'posts_per_page'    => -1,     'post_status'       => 'publish'     );  // Custom query to pull in the pickup points. $  query = new WP_Query( $  args );  // Check that we have query results. if ( $  query->have_posts() ) {       $  available_locations = [];    while ( $  query->have_posts() ) {          $  query->the_post();          array_push($  available_locations, the_title());      } }  var_dump ($  available_locations);  }  // Restore original post data. wp_reset_postdata(); 

insertar datos de un array en un tabla HTML con Angular

Estoy intentado insertar un array de 6 posiciones dentro de una table HTML con Angular, el inconveniente es que se tiene que imprimir en 2 columnas y pasar a una nueva fila hasta finalizar el array. Table Html

var array = [{ "name": "prueba1", "positionId": 1 },{ "name": "prueba2", "positionId": 2 },{ "name": "prueba3", "positionId": 3 },{ "name": "prueba4", "positionId": 4 },{ "name": "prueba5", "positionId": 5 },{ "name": "prueba6", "positionId": 6 }]  

Is there an algorithm to compress a string array represented as pointers to a long string to pointers with a compressed version of the long string?

In a program I am writing, I represent an array of strings as a long string and have pointers point at the various substrings to present my array. E.g.

str_array = struc string_array    long_str = "abcdefab"    pointer_array = [(start = 0, len = 3), (start = 3, len = 3), (start = 6, len=2)) end 

So str_array = ["abc", "def", "ab"], but notice that I can actually compress the long string so by getting rid of “ab” at the end. E.g.

str_array2 = struc string_array    long_str = "abcdef"    pointer_array = [(start = 0, len = 3), (start = 3, len = 3), (start = 0, len=2)) end 

and note that str_array2 is also ["abc", "def", "ab"] === str_array.

What’s this type of compresssion callled in computer science? I assume there’s already literature on this type of algorithms?

Create new array from data.d.results

I am trying to create an array with only the Name properties from a list in SP 2013. I tried using the push method but it has not worked for me. My console prints out the names in an increment style. First line has 1 name ,second 2 names, third 3 names and so on.

Here is my code:

function forLoop(){   var siteUrl = "http://site/_api/web/lists/GetByTitle('SPRestTest')/items";        $  .ajax({           url: siteUrl,           type: "GET",           async: false,           headers: {               "accept": "application/json;odata=verbose"           },           success:function(data){             var arrayOfNames = [];             for(var i=0;i<data.d.results.length;i++){               var items = data.d.results[i];               arrayOfNames.push(items.Name);                  }            },           error: function (err) {             console.log(err);           },     }) };