2017-12-01 6 views
0

So habe ich diese Form:HTML-Formular-Eingaben für PHP-Array. Nicht alle Werte geschrieben

<form data-ajax="false" name="frm" action="cmd_go.php" method="post" > 
 
\t <input type="hidden" name="cmd" value="insertarlineapedidomultiple"> 
 
\t <input type="hidden" name="mod" value="yes"> 
 
\t <!--<input id="insertList" type="hidden" name="insertList" value="">--> 
 
\t <input type="hidden" name="o" value="<?php echo $o ?>"> 
 
\t <div id="div_lista_familias" data-role="collapsibleset" data-content-theme="a" data-iconpos="right"> 
 
\t </div> 
 
\t <input class="insertar btn-azul ui-btn ui-corner-all" data-role="none" type="submit" value="Insertar"/> 
 
</form>

Dann haben wir einige Javascript-Code den Formularinhalt nach dem Aufruf eines Web-Service zu füllen:

function listaProductos(alb, fam){ 
 
    var ok = false; 
 
    $.ajax({ 
 
     type: 'GET', 
 
     url: url_servicio + alb + '/' + fam + '/productos', 
 
     dataType: "json", // data type of response 
 
     //async: false, 
 
     error: function(){ 
 
      ok = false; 
 
     }, 
 
     success: function(data){ 
 
      var content; 
 
      var acum = 0; 
 
      for(i=0; i<data.length; i++){ 
 
       ok = true; 
 
       var qty = get_item_qty_inline(data[i].itemid); \t \t \t \t 
 
\t \t \t \t var qty2 = get_item_qty2_inline(data[i].itemid); 
 
\t \t \t \t var qty3 = get_item_qty3_inline(data[i].itemid); 
 
       var dto = get_item_dto1_inline(data[i].itemid); 
 
       content = '<fieldset class="ui-grid-d">'; 
 
       content += '<div class="ui-block-a"><label for="name">'; 
 
       content += data[i].itemid + ' ' + data[i].nombre + '</div>'; 
 
       content += '<div class="ui-block-c ui-input-text ui-body-inherit ui-corner-all ui-shadow-inset""><input type="number"'; 
 
       content += ' name="cantidad[]" pattern="[0-9]*" id="number-pattern"'; 
 
       content += ' value="' + qty + '" placeholder="Uds1" onfocus="this.oldvalue = this.value;" onchange="onChangeQty(this); this.oldvalue = this.value;"></div>'; 
 
       content += '<div class="ui-block-b ui-input-text ui-body-inherit ui-corner-all ui-shadow-inset""><input type="number" name="dtoporc1[]" pattern="[0-9]*" id="number-pattern"' 
 
       content += ' value="' + dto + '" placeholder="%Dto1"></div>'; 
 
       content += '<div class="ui-block-d ui-input-text ui-body-inherit ui-corner-all ui-shadow-inset""><input type="number"'; 
 
       content += ' name="cantidad2[]" pattern="[0-9]*" id="number-pattern"'; 
 
       content += ' value="' + qty2 + '" placeholder="Uds2" onfocus="this.oldvalue = this.value;" onchange="onChangeQty(this); this.oldvalue = this.value;"></div>'; 
 
\t \t \t \t content += '<div class="ui-block-e ui-input-text ui-body-inherit ui-corner-all ui-shadow-inset""><input type="number"'; 
 
       content += ' name="cantidad3[]" pattern="[0-9]*" id="number-pattern"'; 
 
       content += ' value="' + qty3 + '" placeholder="Uds3" onfocus="this.oldvalue = this.value;" onchange="onChangeQty(this); this.oldvalue = this.value;"></div>'; 
 
\t \t \t \t content += '<input type="hidden" name="idalbaran[]" value="' + alb +'">'; 
 
       content += '<input type="hidden" name="itemid[]" value="' + data[i].itemid +'">'; 
 
       content += '<input type="hidden" name="famalbaran[]" value="' + fam +'">'; 
 
       content += '<input type="hidden" name="itemdesc[]" value="' + data[i].nombre +'">'; 
 
       content += '<input type="hidden" name="precioventa[]" value="' + data[i].precio + '">'; 
 
       content += '<input type="hidden" name="dtoporc2[]" value>'; 
 
       content += '<input type="hidden" name="dtoporc3[]" value>'; 
 
       $('#'+fam.replace(/ /g, '_')+'_content').append(content); 
 
       acum += parseFloat(qty || 0) + parseFloat(qty2 || 0) + parseFloat(qty3 || 0); 
 
       $('#'+fam.replace(/ /g, '_')+' .ui-li-count').html(acum);     
 
      } 
 
     }, 
 
     complete: function(data, status){ 
 
      if (!ok){ 
 
       $('#'+fam.replace(/ /g, '_')).remove(); 
 
      } 
 
     } 
 
    }); 
 
}

Fina lly, ist dies der PHP-Code, den wir in cmd_go.php haben

//GET variables 
if(isset($_GET)){ 
    $params = array_keys($_GET); 
    for ($i=0;$i<count($params);$i++) 
    if(isset($_GET[$params[$i]])){ 
     $nv=$params[$i]; 
     $$nv=$_GET[$params[$i]]; 
    } 
} 

//POST variables 
if(isset($_POST)){ 
    $params = array_keys($_POST); 
    for($i=0;$i<count($params);$i++) 
    if(isset($_POST[$params[$i]])){ 
     $nv=$params[$i]; 
     $$nv=$_POST[$params[$i]]; 
     //print "$nv : ".$$nv.'<br />'; 
    } 
} 
var_dump($itemid); 

Das Problem ist, dass nicht alle Werte gebucht werden, weil unsere $itemid Array nur 91 Elemente haben, wenn unser Web-Service über 400 Out HTML-Formular zurück korrekt mit allen 400 Artikel angezeigt werden, sondern aus PHP var_dump kehrt:

array(91){[0]=>string(6) "173771" [1]=>string(6) "173772" [2]=>string(6) "564814"...[90]=>string(6) "548115"} 

alle Ideen, warum POST nur 91 Datensätze nehmen könnte ??

+0

Welche Version von PHP verwenden Sie? –

+0

versuchen Sie var_dump ($ _ POST) um zu sehen, ob es nur 91 Werte gibt, verwenden Sie auch Apache oder Nginx? – Neil

+0

Was genau verschwendest du? '$ itemid' ist in dem, was Sie gezeigt haben, nicht definiert. – jeroen

Antwort

Verwandte Themen