Problema en pasar de Jquery variable de php .

Cuando me pase variable id a B.php estoy recibiendo este error

"Notice: Undefined index: id1 in C:\xampp  \htdocs\PhpProject1\OtherUsableItems\B.php on line 2 

Cómo solucionar este problema ???? Este A.php

<html>
<head>
<script src="jquery.js"></script>
<script>
$(document).ready(function(){
  var id = 23; 
$("#submit").click(function(){
 $.post("B.php",
 {
     id1: id,

  } );      
   });
  });
 </script>
 </head>
 <body>
 <form action="B.php" method="post" >
 <input type="submit" id="submit" name="submit"/> 
 </form>
 </body>
 </html>

Este B.php

  <?php
   $a =$_POST['id1'];
   echo $a ;
   ?>

Quiero identificador de variable para pasar a B.php

  • ya van a B.php después de enviar,así que ¿por qué no hacer ocultos campo de entrada con el valor que desee enviar y, a continuación, leer en B.php?
  • Usted está recibiendo el error C:\xampp \htdocs\PhpProject1. trate de usar http://localhost
  • Y también quiero guardar esta variable a la base de datos mysql
InformationsquelleAutor Abhishek | 2013-04-05

9 Comentarios

  1. 4

    Probar este:

    <html>
    <head>
    <script src="jquery.js"></script>
    <script>
    $(document).ready(function(){
      var id = 23; 
    $("#submit").click(function(){
     $.ajax(
        {
        url: "B.php",
        type: "POST",
    
        data: { id1: id},
        success: function (result) {
                alert('success');
    
        }
    });     
       });
      });
     </script>
     </head>
     <body>
     <form  >
     <input type="button" id="submit" name="submit"/> 
     </form>
     </body>
     </html>

    A Continuación, B.php

    <?php
       $a =isset($_POST['id1'])?$_POST['id1']:'not yet';
       echo $a ;
       ?>
  2. 1

    Pruebe a cambiar el tipo de entrada en el botón en lugar de presentar
    <input type="button" id="submit" name="submit"/>

  3. 1

    El problema es que el formulario es enviado ,$.post es para ajax sumit. Para que usted necesita para prevenir el formulario de envío.

    <script>
         $(document).ready(function(){
            var id = 23; 
            $("#submit").click(function(){
               $.post("B.php",
               {
                  id1: id,
    
               });  
               event.preventDefault() ;
            });    
        });
    </script>

    Agregar event.preventDefault(); en el botón haga clic en la función

    • Mediante la adición de correo.preventDefault(); Error ha sido resuelto, pero después de la presentación debe ir a B.php y echo el valor de la variable a
    • Entonces,Usted necesita para eliminar ajax$.a posteriori se utiliza para ajax enviar.que no va a redirigir a B. php.Que crear solicitud xmlhttp
  4. 0

    Utilizar un campo oculto para establecer el valor que desea enviar a través de. Puesto que usted está utilizando se someten, a su entera formulario es enviado. El campo oculto también es enviado y esto se puede acceder directamente a través del nombre del campo oculto.

    • Entonces, ¿cuál es el uso de jquery en esta pregunta?
    • Él no necesita el jquery luego. Se puede enviar a través de con la preocupación de cómo enviarlo.
  5. 0
    $(document).ready(function(){
      var id = 23; 
      $("#submit").click(function(e){
         $.post("B.php", {id1: id} );     
         e.preventDefault();
       });
     });

    Probar el código anterior. Primero:
    JS no permite hacer algo como esto: {id1: id,} (véase la coma al final). Que es una función de PHP. En realidad, su código JS no deben ser ejecutados en su totalidad debido a que es un error de sintaxis (suponga que usted va a encontrar en la consola de tu navegador)

    Otro problema: se debe impedir por defecto del envío de un formulario. e.preventDefault() es necesario para que los. Sin ella, ajax post va a ser iniciado y que de costumbre formulario de envío que va a suceder. Y su forma no tiene ningún elemento con nombre id1, supongamos que la segunda solicitud de producir la mensaje de error.

    EDICIÓN:
    Esto es poner un valor regular de presentar, por lo que el navegador se redirige a B.php

    $(document).ready(function(){
          var id = 23; 
          $("#submit").click(function(){
                  $(this).closest("form")
                         .append($("<input>", {"type":"hidden", "name":"id1", "value":id}));
           });
         });
    • Mediante la adición de correo.preventDefault(); Error ha sido resuelto, pero después de la presentación debe ir a B.php y echo el valor de la variable a
    • Bueno, que usted no debe usar ajax. Permítanme mostrar
    • Ver respuesta actualizada. No me basta con encontrar una forma, poner un campo oculto en ella con un valor.
  6. 0

    Prueba este código,

     <html>
     <head>
     <script src="jquery.js"></script>
     <script>
     $(document).ready(function(){
     var id = 23; 
     $("#submit").click(function(){
     $('#id1').val(id);
     });
     });
    </script>
     </head>
     <body>
     <form action="B.php" method="post" >
     <input type="submit" id="submit" name="submit"/> 
     <input type="hidden" name="id1" id="id1" value=""/>
    </form>
    </body>
    </html>

    Aquí usted puede pasar el valor de ‘id’ a B.php Y será de acceso como $_POST[‘id1’]

  7. 0

    Intente esto:

    <script>
    $(document).ready(function(){
       var id = 23; 
       $("#submit").click(function(e){
         e.preventDefault();
         $.post("B.php", {id1: id}, function(data){ //<---get the data from B.php
            console.log(data);   //<--------show it here
            alert(data);
         });      
       });
      });
     </script>

    Puesto que usted está utilizando ajax función, de manera que usted tiene que parar el formulario de envío característica. Usted tiene un punto y coma final aquí {id1 : id,} este es un problema en IE, navegadores, pero más recientes de otros navegadores se acaba de funcionar bien.

    Nota:

    Que se registra este error:

    "Notice: Undefined index: id1 in C:\xampp \htdocs......

    No ejecutar la página en el sistema de ficheros $.post() no funcionan de esta manera.

    Lugar de tratar de usar http://localhost/yourapplication/page.php

    • Mediante la adición de correo.preventDefault(); Error ha sido resuelto, pero después de la presentación debe ir a B.php y echo el valor de la variable a
    • Estás revisando esta en localhost
    • De Error que muestra una ruta de acceso al archivo en disco, en cualquier caso. Si OP estaban tratando de ejecutar la secuencia de comandos de file://..../page.php, no habría ningún error en todo, ya que PHP no se ejecuta en absoluto.
    • Creo que usted tiene que utilizar la función de devolución de llamada ahora. ver la respuesta.
  8. 0

    O usted podría utilizar submit (), de esta manera

    $(function(){
        var id = 23;
        $("#myform").submit(function() {
            $.post("B.php", { id1: id }).done(function(data) {
                alert( data );
            });
            return false; //true(post form data)
        });
    });

    Y forma

    <form id="myform" method="post">
    <input type="submit" id="submit" name="submit" />
    </form>

    EDICIÓN: Ah, y sí para B.php isset cheque o error_reporting(0);

    if(isset($_POST['id1'])){
        print_r( $_POST );
    }

Dejar respuesta

Please enter your comment!
Please enter your name here