Pregunta

Obtuve esta matriz 2 en una forma para ser procesada.Sin embargo, solo logro obtener el resultado de una sola de las matrices.Muestra como se muestra a continuación:

<inputs id="location" type="text" name="data[]" value=""/>
<input id="shipval" type="text" name="data[][id]" value=""/>

Y en la parte de PHP está a continuación:

foreach ($_POST ["data"] as $id => $subs) {       

            foreach ($subs as $key=>$sub) {

                $subcategory = $sub;

                if($subs['id']=="$subcategory"){
                    echo $sql = " insert into x(kodLebuhraya,kodSeksyen) values ('".$subs['id']."','".$sub."')";echo "<br>";    
                }else{
                    //echo "hi2";
                    echo $sql = " insert into x(kodLebuhraya,kodSeksyen) values ('".$subs['id']."','".$sub."')";echo "<br>";
                }

            }   

        }

Significa una ubicación para un barco.Tengo varios campos de entrada para ubicación y valor de envío.¿Pueden aclararme cuál está mal?Gracias de antemano.

¿Fue útil?

Solución

Así que básicamente necesitas pasar la ubicación y el shirtval en pares.

Pruebe esta estructura en HTML:

<label>Set One</label>
<input class="location" type="text" name="data[location][]" value=""/>
<input class="shipval" type="text" name="data[shipval][]" value=""/>
<label>Set Two</label>
<input class="location" type="text" name="data[location][]" value=""/>
<input class="shipval" type="text" name="data[shipval][]" value=""/>
<label>Set Three</label>
<input class="location" type="text" name="data[location][]" value=""/>
<input class="shipval" type="text" name="data[shipval][]" value=""/>

y este código para PHP:

  foreach ($_POST['data']['location'] as $key => $location) {       
        $shipVal = $_POST['data']['shipval'][$key];

        //now you have a pair of $location and $shipVal
        echo $location.' : '.$shipVal.'<hr>';

    }

Evite usar índices nombrados después de los innopedados ex.<input name="array[][named]" /> Puede perder el orden de los campos si uno de los campos de par está vacío.

Otros consejos

Usted tiene <inputs id="location" en lugar de <input id="location"

también ... foreach ($subs as $key => $sub) { tirará un error para <inputs id="location" type="text" name="data[]" value=""/> porque no es multidimensional.Así que intente cambiar eso a <inputs id="location" type="text" name="data[][]" value=""/>

Para una selección múltiple, el nombre tiene que terminar en corchetes cuadrados, por lo que deberá cambiar el nombre de sus entradas shipval

En primer lugar, tiene generador de generación de generación en lugar de inputs.

en segundo lugar, esta línea:

input

tratará cada variable como una matriz, pero la ubicación no es una matriz.

No vi la necesidad de un bucle ya que solo quieres acceder $_POST['data'][0] y $_POST['data'][1]['id']

También noté que tu SQL es un duplicado, así que puedes intentarlo. Puedes intentarlo.

$sql = "INSERT INTO  x(`kodLebuhraya`,`kodSeksyen`) VALUES ('%s','%s')" ;
printf($sql,mysqli_real_escape_string($_POST['data'][0]),mysqli_real_escape_string($_POST['data'][1]['id']));

Producción

INSERT INTO x(`kodLebuhraya`,`kodSeksyen`) VALUES ('A','B')

Formulario utilizado

<form method="POST">
    A : <input id="location" type="text" name="data[]" value="" /> 
    B : <input id="shipval" type="text" name="data[][id]" value="" /> 
    <input  id="shipval" type="submit" name="submit" value="Submit" />
</form>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top