como puedo ejecutar fucntion javascript dentro php :c help!!

Publicado en 'Programación' por itachi150, 3 Set 2014.





  1. itachi150

    itachi150 Miembro nuevo

    Registro:
    21 Jul 2014
    Mensajes:
    16
    Likes:
    0




    if($c9==1){
    ?>
    <script>
    var valor="<?php echo $c9;?>"


    function cheack(valor){
    if(valor==1){
    alert(valor);
    document.getElementById("txtmonto").disabled=true;
    document.getElementById("limite").checked=true;
    }
    }</script>

    <?php }} ?>

    este es el codigo pero no me ejecuta :c un idea como puedo hacerlo
     


  2. AiApaec

    AiApaec Miembro frecuente

    Registro:
    1 May 2014
    Mensajes:
    58
    Likes:
    14
    Esta parte
    echo $c9;?
    No debe ser asi: ?
    echo $c9?
     
  3. itachi150

    itachi150 Miembro nuevo

    Registro:
    21 Jul 2014
    Mensajes:
    16
    Likes:
    0

    si te das cuenta estoy intentando de imprimir dentro de un javascript!!
    y normalmente en php tbm se ejecuta asi
    echo $c9 ;
    algo basico en php
     
  4. Fumador

    Fumador Miembro frecuente

    Registro:
    22 Jun 2009
    Mensajes:
    162
    Likes:
    10
    En primer lugar no se sabe porque termina en <?php }} ?> supongo que antes existirá otra condicional para esa llave extra.

    Ahora, ¿qué debería ejecutar? lo unico que intentas hacer es asignarle un valor a la variable js: "valor" (claro, si $c9 tiene valor) y nada más. Si pretendes que la función "cheack" haga algo ... creo que te faltaría escribir un cheack(valor); después de tu función.

    Suerte.
     
  5. AiApaec

    AiApaec Miembro frecuente

    Registro:
    1 May 2014
    Mensajes:
    58
    Likes:
    14
    Ah sí, tienes razón.
    Pero esa función no tiene por qué ejecutarse al principio uando la página carga a menos que sea invocada. Si quieresque se eejecute al principio debe ser llamada en el evento onload del body:
    <body onload="miFuncion('<? Echo $ c9; ?>')">

    PD Por qué no usas jquery.
     
  6. itachi150

    itachi150 Miembro nuevo

    Registro:
    21 Jul 2014
    Mensajes:
    16
    Likes:
    0
    claro pero lo quiero hacer dentro de un boton
    lo quiero hacer es:
    cuando le doy click en un boton este boton me haga la consulta BD, la cual me retorne si el valor de cheakbox es cheakcd si fuera cierto me tiene que visualizar que el cheakbox este cheakeado.
     
  7. AiApaec

    AiApaec Miembro frecuente

    Registro:
    1 May 2014
    Mensajes:
    58
    Likes:
    14
    A ver si entiendo bien, tu página tiene un botón y un checkbox (al margen de si tiene más controles), el checkbox representa en realidad un valor de la base de datos, por ejemplo un campo en una tabla que diga si el registro está activo o no, es un valor booleano, es decir TRUE o FALSE, en la base de datos sería un tipo BIT, albergando un 0(cero) para FALSE o un 1 para TRUE. En la interfaz gráfica, es decir en la página, ese campo aparece como un checkbox, checked si es TRUE y no checked si es FALSE. Al hacer clic en el botón iría a la BD y se tratería el valor del campo BIT, si es TRUE pondría el atributo checked en el checkbox, si es FALSE quitaría el atributo checked del checkbox.

    Lo que necesitas es usar es AJAX, aunque no es difícil hacerse la función resulta un poco tedioso (debes usar el objeto xmlhttprequest), mejor usa jquery que es ya casi un estándar.


    Por ejemplo, hagamoslo con jquery, tu botón debe tener un identificador, el checkbox también, ello para poder referenciarlo, para eso se usa el atributo "id". Este sería el código html:
    HTML:
    <body>
    <div>
    <input type="button" name="btnCheckStatus" id="btnCheckStatus" value="Verificar estado en la BD" />
    </div>
    <div>
    Checkbox: <input type="checkbox" id="chkStatus" />
    </div>
    <body>
    En el <head> de tu página pon la referencia al framework jquery. De una vez pondremos en el head el código necesario para hacer la llamada ajax, aunque lo puedes poner en un archivo .js aparte también. Así que aquí vamos:
    HTML:
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
       <script type="text/javascript">
          //este es el equivalente al onload del body, se ejecuta cuando la página ya está cargada.
         $(document).ready(function(){
    
               //le decimos que en el evento click del botón con id="btnCheckStatus" (fijate en el selector "#", como
               // en css, enjquery el selector por id es "#", mientras que el selector por clase es ".").
               //Esto: $("#btnCheckStatus") es el equivalente a: document.getElementById("btnCheckStatus").
              $("#btnCheckStatus").click(function(){
                 
                    //hacemos la llamada ajax mediante la función $.post():
                    $.post("AjaxHandler.php", {data: "dataDesdeElCliente"}, function(result){
                        
                          //Esto es una función anónima enviada como callback a la función $.post(),
                         //se ejecutará cuando la página AjaxHandler.php retorne alguna respuesta,
                         // es decir cuando haga: echo "true" o echo "false", el valor de este echo será el
                         //el valor del parametro result.
                         alert("DATABASE says: " + result);                    
                         if(result == "true"){//si true entonces hay que poner como checked el checkbox:
                             $("#chkStatus").prop('checked',true);
                         else
                             $("#chkStatus").prop('checked',false);
                    });//ajax
    
                    //Esto se ejecuta antes que la función anónima enviada como callback,
                   //puesto que ajax es asíncrono, aunque quizás ni se note debido a lo ligero de los datos.
                    alert("esperando respuesta del servidor...");
               });//evento-click
         });//ready
    
       </script>
    
    </head>
    Notar que la función $.post() de jquery usa el método POST, es decir envía los datos mediante POST y no mediante GET.
    La fución $.post() recibe tres parámetros: el primero es la url de la página a la cual se enviará la petición; el segundo el dato a enviar en la petición, se pueden enviar varios datos en uno objeto JSON, en el ejemplo se envía la cadena "dataDesdeElCliente"; el tercer prámetro es un callback, es decir una función como parámetro, esta función se ejecutará cuando se reciba la respuesta del servidor( de la página especificada como primer parámetro).
    En realidad el segundo y tercer parámetros son opcionales, si solo vas a enviar datos basta con especificar la url: $.post("AjaxHandler.php"), pero es mejor de la forma que se encuentra en el ejemplo ya que así se sabe si todo s ehizo bien en el servidor.

    Para leer los datos enviados desde $.post() en la página php AjaxHandler.php:
    $_POST["data"]
    Ojo que ese data es la llave y es el mismo que se usó en $.post(): {data: "dataDesdeElCliente"}, puedes usar cualquier nombre.
    ...
    Bueno creo que con eso es suficiente.
     
Etiquetas: