Menú Principal

php + jquery

Iniciado por Kase, 2 Mayo 2010, 05:23 AM

0 Miembros y 1 Visitante están viendo este tema.

Kase

holaaaa!!! ando muuuy muy apurado con un proyecto en el que me pidieron que no sea necesario recargar paginas y paginas.. =/
se que eso se usa con ajax... pero enrrealidad todo lo que sea javascript me proboca urticaria (en mi mente, no acepto usar 10 linas de codigo namas para un hola mundo)
bueno e estado experimentando con jquery

el como recargar un div

que seria algo simple..
algo asi:

Citar<a href='#' onclick='$(#mydiv).load(pagina.php) '> link </a>
<div id='mydiv'> </div>

pagina.php
<?php
echo 'hola'
?>
eso es a lo que me refiero, es bonito y simple (me gusta que mi codigo sea legible, que se entienda para mortales)
pero en realidad yo no se nada de jquery ni de ajax(solo se, que no quiero acomplejar mi codigo)
y necesito una funcion algo asi

Citar<form method='get'>
texto:<input type='text' name='mytext'>
<input type=button value='algo' onclick='$(#mydiv).load(pagina.php)' >
</form>
<div id='mydiv'> </div>

y mi pagina.php
<?php
$variable = $_GET('mytext');
echo $variable;
?>

porcierto esto no funciona... el problema es que no se como mandarle la variable a pagina.php =/

pero quiero algo asi, que sea sencillo de leer.... sin las complicadas lineas de codigo de ajax...
y quiero pasaarle los parametros a un script php
por que php?  lo conozco mejor, y  me es mas facil escribir codigo en php que en jquery/ajax
se que se ve raro, pero pues con  esa base, puedo crear cosas "mas complejas" como sistema de login sin recargar, consultas a BD y demas"

alguien me echa un cable? =/

WHK

Citar$(#mydiv).load(pagina.php)

pagina.php no es una variable ni constante ni función, pagina no es un objeto como para decir pagina.match() o pagina.php.sort(), es un string! por lo tanto va encerrado en comillas:
Citar$(#mydiv).load('pagina.php')

Kase

GRACIAS POR REGAÑARME Y NO RESPONDER  

no recordaba que ubiera moderadores asi en el hacker, (esto ya no es lo que era) ¬¬
pero bueno, no importa...

lo solucione... me confundia por que la documentacion de jquey decia que  load tine 3 parametros

Citar$(#div).load("pagina",{variables por metodo post}, funcion que atrapa);
el problema era conseguir las variables, tenia varios metodos... el mas facil era:

Citar$(#myform).serialize();

pero no se conseguian...  igual ya lo resolvi con este codigo


funcion jquery
Citar$(document).ready(function() {   
   $('#frm').submit(function () {
      $.ajax({
      type: "POST",
      url: "hola.php",
      data:$("#frm").serialize(),
      success: function(respuesta) {
      $('#hello').html(respuesta);

   }
      });
      return false;
   });
 });
formulario
Citar<form method='POST' id='frm' action='hola.php'>
      Username: <input type='text' name='username'><br>
      Password: <input type='password' name='password'><br>

      <input  type='submit' value='login' >
   </form>
             <!-- $('#hello').load('hola.php',$('#frm').serialize()); -->      
                                               
<div id="hello">
php
Citar<?php

$username = $_POST['username']; // variable de usuario
$password = $_POST['password']; // variable de contraseña


echo 'username: '. $username . '  pasword: '. $password ;
echo "</br>hola";

?>

por si a alguien le sirve...

eresse

Hola, tengo un problemilla.
Quiero utilizar ajax como lo has usado tu.
Mi codigo es el siguiente:
mi jquery "jquery.volcar.js"


alert("entro en el jquery");

$(document).ready(Consulta(){


$('#frm').submit(function Consulta(){

 
  alert("dentro de funcion consulta");

         $.ajax({
type: "POST",
                 url: "aa.php",
data: $("#frm").serialize(),          
                 success: function(data){
alert("todo correcto",data);                                                                               
              },
error:problemas


                });
                return false;
        });
   });


function problemas()
{
  $("#resultados").text('Problemas en el servidor.');
};






Mi archivo php "aa.php"

<?php
sleep
(3); //deja inactivo el script durante 5 segundos, asi nos dara tiempo
//a que los datos pasen a la tabla de limesurvey

echo 'dentro del php';
echo
'';
$ident $_POST['ident'];
echo 
'identificador: '$ident;

mysql_connect('localhost','root','MPerdido') or die('ERROR EN LA CONEXION con LimeSurvey:'.mysql_error());
mysql_select_db("limesurveyDb") or die('ERROR AL ESCOGER LA BD de Limesurvey:'.mysql_error());

mssql_connect('hume.telecyl.com','appLime','IHN7n7Gc') or die('ERROR EN LA CONEXION con Hume:'.mysql_error());
mssql_select_db("estudiosDb") or die('ERROR AL ESCOGER LA BD de Hume :'.mysql_error());;

$sql="SELECT * FROM lime_survey_"$ident;


//$sql="SELECT * FROM lime_survey_".$_POST['ident'];





$query=mysql_query($sql);

while(
$row=mysql_fetch_array($query)) {
        echo 
count($row);

        
$sqlIns="INSERT INTO tabla (";

        for(
$i=1;$i<=count($row);$i++) {

                
$sqlIns2.="campo".$i;
                
$sqlIns3.="'".$row[$i]."'";

                if(
$i<count($row)) {
                        
$sqlIns2.=",";
                        
$sqlIns3.=",";
                }

        }


        
$sqlIns.=$sqlIns2.") VALUES (".$sqlIns3.")";

        
$query=mssql_query($sqlIns);
        echo 
$sqlIns;
}

unset(
$sqlIns2);
unset(
$sqlIns3);


/*foreach($row as $key => $val) {
        echo $key."=".$val.chr(20);
}
*/
//mysql_close($conexion1);
//mssql_close($conexion2);
?>



Y esta es la llamada que hago en mi html


<script src="/limesurvey/util/jquery.volcar.js" type="text/javascript">
</script>


Pongo la ruta completa. Pero no me lo coge, si te das cuenta en el codigo del archivo js, tengo varios alert para avisarme de que lo a detectado, y no lo hace.
Nose que puede estar  mal, toda ayuda es bien recibida.

miadagio

Primero el src del javascript  no deberia llevar el / antes de la ruta si estan los dos archivos el aa.php y el js dentro del mismo directorio deberias solo poner el nombre del archivo.
Lo otro que para llamar $.ajax de un formulario es mejor que hagas
en el tag del formulario <from onsubmit="Consulta(); return false" ...>
y despues pongas la funcion fuera del $(document).ready(function(){});

Graphixx

les recomiendo implementar datagrids, si ya esta la rueda inventada para que reinventarla... yo he usado miles pero la mejor fue.
http://www.apphp.com/php-datagrid/index.php

una version gratuita por si quieren probar:
http://jvelazqu.glo.org.mx/xajaxGrid/

me cuentan como les fue.
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx
Mi blog