entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Como duplicar el primer valor de un array dependiendo del valor de otro?

hola a todos, estoy trabajando con variables que recibo con javascript y después las mando por php, pero son valores dinámicos

este es mi formulario

enter image description here

entonces aqui entra mi problema, si el usuario manda 3 "Node Type", cada uno con sus determinados "Node Name", entonces como le hago para que el valor del primer arreglo lo duplique, tantas veces como existan "Node Name", no se si me doy a entender, cualquier ayuda muchas gracias de antemano

mi código para guardar los valores de los inputs es el siguiente

   $ip= filter_input(INPUT_POST, "IP");
            $signum= filter_input(INPUT_POST, "SIGNUM");
            $idmop= filter_input(INPUT_POST, "IDMOP");
            $n1= filter_input(INPUT_POST, "N1");
            $n2= filter_input(INPUT_POST, "N2");
            $n3= filter_input(INPUT_POST, "N3");

            $n1a = explode(',',$n1); 
            $n2a = explode(',',$n2); 
            $n3a = explode(',',$n3); 

            for($i=0;$i<sizeof($n2a);$i++){

            $sqlSD = "INSERT INTO [MOPS].[dbo].[create_mop_NodeInfo] (ip,signum,idmop,nodeType,nodeName,ipAd) 
            VALUES ('".$ip."','".$signum."','".$idmop."','".$n1a[$i]."','".$n2a[$i]."','".$n3a[$i]."')";
            $rs_tar_addSD=odbc_exec($connection,$sqlSD);

            } 

Editada imagen mal enlazada.

0voto

Peter comentado

Un estado de Twitter como imagen jamás va a funcionar. Por favor sube la imagen a otro lado, edita tu pregunta y agrégala de forma correcta.

Saludos.

0voto

rach comentado

no me deja agregar imagenes si lo intente, por eso lo agregue a mi cuenta para que puedan visualizar mi formulario

0voto

Peter comentado

¿Que problema te da, porque no te deja?

Supongo que la URL que pones es directa a la imagen acabando en jpg o png y no punes una URL de alguna web. ¿Es así?

Si es así, te pido que por favor hasta abajo en "Contacto y Feedback" mandes la razón y error por el que no te deja. Así se puede solucionar en caso de que sea un bug.

Porque acabo de probar con 6 imágenes y no me da ningún tipo de problema.

Muchas gracias.

Saludos.

0voto

s00rk comentado

Si pudieses poner tu código html también podría ayudarme a mas a darme una idea de como lo estas manejando y ya darte una solución de acuerdo a como estés trabajando.

Tengo una vaga idea de lo que intentas hacer pero esas variables que manejas en el php no se exactamente a que campo de la imagen que muestras es cada una hehehe.

0voto

rach comentado

hola muchas gracias por responder, te escribo el codigo html que ocupo para mi formulario

<p>Complete</p>
                        <table class="table table-striped table-bordered table-hover table-heading no-border-bottom" id="field_grid10">
                            <thead>
                                <tr>
                                    <th>NODE TYPE</th>
                                    <th>NODE NAME</th>
                                    <th colspan="2">IP ADDRES</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td><input type="text" value=""  name="node1[]"  id="node1[]" placeholder="Node Type" class="form-control90" ></td>

                                    <td >
                                        <input type="text" value=""  name="node2[]" id="node2[]" placeholder="Node Name" class="form-control91" ><br>

                                    </td>

                                    <td><input type="text" value=""  name="node3[]" id="node3[]" placeholder="IP Address" class="form-control92" ></td>
                                    <td></td>
                                </tr>
                            </tbody>
                        </table>
                        <button id="add_field10" class="btn btn-default">Add Node Name <i class="fa fa-plus"></i></button>
                        <button id="add_field11" class="btn btn-default">Add Node Type <i class="fa fa-plus"></i></button>

                        <script type="text/template10" id="template10">
                                  <tr>
                                    <td>

                                    </td>
                                    <td>
                                        <input type="text" class="form-control91" value="" id="node2[]"  name="node2[]" placeholder="Node Name" >
                                    </td>
                                    <td>
                                        <input type="text" class="form-control92" value="" id="node3[]" name="node3[]" placeholder="IP Address" >
                                    </td>

                                    <td>
                                        <a href="#" class="btn-remove10"><li class="fa fa-trash-o"> </li></a>
                                    </td>
                                </tr>

                        </script>

esto entra a la función de javascript y obtengo los valores de los input

function saveNodeInfo(){

        var inputs1 = document.getElementsByClassName( 'form-control90' ),
        n1  = [].map.call(inputs1, function( input ) {
            return input.value;
        }).join( ', ' );
        var inputs2 = document.getElementsByClassName( 'form-control91' ),
        n2  = [].map.call(inputs2, function( input ) {
            return input.value;
        }).join( ', ' );
        var inputs3 = document.getElementsByClassName( 'form-control92' ),
        n3  = [].map.call(inputs3, function( input ) {
            return input.value;
        }).join( ', ' );

        saveNodeInfoBD(n1,n2,n3)
}

function saveNodeInfoBD(n1a,n2a,n3a){

        var ip = document.getElementById("ip").value;   
        var signum = document.getElementById("signum1").value;
        var idmop = document.getElementById("idmop").value;
    alert(n1a);
    alert(n2a);
    alert(n3a);
    var params ={
                "IP":ip,
                "SIGNUM":signum,
                "IDMOP":idmop,
                "N1":n1a,
                "N2":n2a,
                "N3":n3a,
                "ACT": 'SAVENODEINFO' //variables para crear el log al guardar el mop           
            };

            $.ajax({
                data:   params,  // the sent information
                url:    'mops.php', // the server file whc
                type:   'post',
                error: function(response){ //if an error happens it will be processed here

                },
                success:    function (response) { // the result of the call will be processed here
                    var result = eval(response);
                    alert("Successful");
                    if(result=="true")
                    {

                            document.getElementById("progressbar").style.width = "8%"; // VALOR DE BARRA

                    }
                    else{

                    }

                }
            });

}

que despues lo regreso al codigo que puse de php arriba y guardo

0voto

white comentado

Que estructura deseas que tenga tu arreglo?

talvez algo así?

[
    node type 1 => [
        node name => 'xxx'
        ip => 'xxx.xxx.xxx.xxx'
    ],
    node type 2 => [
        node name => 'xxx'
        ip => 'xxx.xxx.xxx.xxx'
    ]
]

1 Respuesta

1voto

s00rk Puntos160

Emm bueno la forma mas rustica de hacerlo es al principio de tu función saveNodeInfo checar por aquellos td vacíos y ahi crear un input hidden con el valor de su anterior celda la cual tendrá pues el valor de la celda del nodetype.

En codigo seria algo asi:

var currRow = 1;
        var tabla = document.getElementById("field_grid10").rows;
        var currCell, lastCell;

        for(var i = 2; i < tabla.length; i++)
        {
            currCell = tabla[i].cells[0].children[0];
            if(typeof currCell == 'undefined')
            {
                lastCell = tabla[i-1].cells[0].children[0];
                if(typeof lastCell != 'undefined')
                {
                    tabla[i].cells[0].innerHTML = '<input type="hidden" value="' + lastCell.value + '" name="node1[]" id="node1[]" />';
                }
            }
        }

Aunque de esta forma si el valor lo cambian después de que es hecho el submit o en tu caso la petición por ajax, si cambian el valor del nodetype después esto ya no servirá.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta