PHP - Pasar una variable de una pagina php a otra Js

 
Vista:

Pasar una variable de una pagina php a otra Js

Publicado por Proteus8 (2 intervenciones) el 24/07/2020 23:40:11
Hola todos, espero me puedan ayudar, tengo 3 paginas 2 php y una js, necesito que al presionar un botón en la primera pagina php pueda pasar un array otra pagina js y esta envie esos datos a otra pagina php y esta ultima lo procese e imprima el resultado en primera pagina php, pero no se como hacerlo, si quiero pasar un dato lo puedo hacer pero no se como hacerlo con un arrray.

este es mi código donde tengo el botón, dependiendo de lo que triga de la base de datos, me crea N input , que es lo son los que necesito pasar a la pagina js y como lo había dicho antes solo consigo que me pase el valor del primero que encuentra.
pagina1.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
@extends('layouts.app2')
@section('contenido')
      <div class='container'>
            <form id='formulario'>
        <div class='row md-2'>
                   <button class='btn-secondary btn-default row mt-5' type='submit' id='analizar' name='analizar'>Analizar</button>
 
          </div>
          <div class='row'>
 
                <table class='table  table-format table-hover'>
                  <thead>
                    <tr>
                       <th scope='col'>IP</th>
                      </tr>
                  </thead>
                  <tbody>
                 @foreach ($enlaces as $enla)
 
                     <tr>
                       <td><input id='prueba1' type='text' name='ip'  value='{{$enla.ip}}'></td>
                      <td><div id='estado'><div id='respuesta'></div></td>
                      </tr>
 
                @endforeach
 
                  </form>
                  <script src="{{ asset('js/app/ping.js')}}"></script>
                  </tbody>
              </table>
         </div>
     </div>
@endsection

este de aca es mi codigo js, donde solo me procesa el primer input que encuentra,y lo envia a otra pagina php donde trabajo ese datos. (solo logro que tome el primer input que pilla, no se como hacer para que recorra todos los que se creen en foreach de la pagina php)

Pagina2.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
formulario.addEventListener('submit',function(e){
  e.preventDefault();
console.log('pinchaste el boton')
var datos = new FormData(formulario);
console.log(datos.get('ip'))
 
 
fetch('http://localhost/scadabita2/resources/views/app/post.php',{
  method:'POST',
  body:datos
})
.then( res => res.json())
.then( data => {
  console.log(data)
  if(data === 'error')
  {
    respuesta.innerHTML=`<div>
   error
    </di>`
  }else{
    respuesta.innerHTML=`<div>
    ${data}
    </di>`
  }
 
})
})

esta es la pagina php que procesa el dato que envia la pagina js e imprime el resultado en la primera pagina php
pagina3.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
$data=$_POST['ip'];
 $PING1='ping '.$data.' -n 4';
   $res=shell_exec($PING1);
   $var=strstr($res, '(100% perdidos)');
   $findme='recibidos = 0';
   $pos = strpos($res, $findme);
 
   if($pos == false)
   {
       $findme='recibidos = 4';
        $pos = strpos($res, $findme);
 
            if($pos == false)
            {
                $RESULTADO="OKNOK.jpg";
                echo json_encode("<img src='../img/".$RESULTADO."'>");
            }
            else
            {
                $RESULTADO="Ok.jpg";
                echo json_encode("<img src='../img/".$RESULTADO."'>");
            }
 
    }else
        {
        $RESULTADO="NOk.jpg";
            echo json_encode("<img src='../img/".$RESULTADO."'>");
        }
 
?>

Espero me puedan ayudar!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de aberon10
Val: 575
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Pasar una variable de una pagina php a otra Js

Publicado por aberon10 (157 intervenciones) el 26/07/2020 03:58:31
Hola, la cuestión en tu código es que el atributo name es igual para todos los inputs, por lo que php en su variable global $_POST solo guarda el ultimo de ellos. Puedes solucionarlo de varias formas, una de ellas es dándole un nombre distinto a cada input.

pagina1.php
1
<input id='prueba1' type='text' name='{{"ip".$enla.ip}}'  value='{{$enla.ip}}'>

pagina3.php
La variable $data tendra el valor de cada uno de los inputs
1
2
3
4
<?php
foreach ($_POST as $data) {
  // Aqui tu código ...
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pasar una variable de una pagina php a otra Js

Publicado por Proteus8 (2 intervenciones) el 27/07/2020 02:21:45
Hola aberon10, muchas gracias por responder, cambie lo que me indicas, pero básicamente lo que no se, es como hacer para pasar ese arreglo a la pagina donde tengo mi codigo JS y como procesarla ahí, para pasarla a la otra pagina php y recibir el resultado en la primera pagina php. si me pudieras ayudar por favor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de aberon10
Val: 575
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Pasar una variable de una pagina php a otra Js

Publicado por aberon10 (157 intervenciones) el 27/07/2020 04:24:53
Hola, puedes hacer algo como lo siguiente:
pagina1.php
1
2
3
4
5
6
7
8
9
10
11
12
document.getElementById("formulario").addEventListener("submit", (e) => {
  e.preventDefault();
  const fData = new FormData(e.target);
  fetch('process.php', {
    body: fData,
    method: "POST"
  }).then(res => res.json())
  .then(res => {
    respuesta.innerHTML =`<div>${res.data}</div>`;
  })
  .catch(error => console.log(error));
});
pagina3.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
header("Content-Type: application/json");
$response = ["data" => ""];
 
foreach ($_POST as $data) {
  $PING1='ping '.$data.' -n 4';
  $res=shell_exec($PING1);
  $var=strstr($res, '(100% perdidos)');
  $findme='recibidos = 0';
  $pos = strpos($res, $findme);
 
  if ($pos == false) {
    $findme='recibidos = 4';
    $pos = strpos($res, $findme);
    if ($pos == false) {
      $RESULTADO="OKNOK.jpg";
    } else {
      $RESULTADO="Ok.jpg";
    }
  } else {
      $RESULTADO="NOk.jpg";
  }
 
  $response["data"] .= "<img src='../img/".$RESULTADO."'>";
}
 
echo json_encode($response);

Nos comentas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar