Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/09/2010, 08:47
Avatar de perryjr
perryjr
 
Fecha de Ingreso: julio-2010
Ubicación: Granada, Spain, Spain
Mensajes: 190
Antigüedad: 13 años, 9 meses
Puntos: 27
Respuesta: Ayuda combinar dos codigos en un archivo

OK. Según el código que posteaste el archivo quedaría así (todavía no me has dado el nombre, asi que lo llamare archivo.php). Además te he resaltado los cambios.

Código PHP:
Ver original
  1. <?php
  2. // esta parte la he añadido yo
  3. if(empty($_GET['save'])) {
  4. ?>
  5.  
  6. <script type="text/javascript">
  7. $(document).ready(function(){
  8.     $(function() {
  9.         $("#contentLeft ul").sortable({ axis: "y",
  10. opacity: 1, cursor: "move", update: function() {
  11.             var order = $(this).sortable("serialize") + '&action=updateRecordsListings';
  12.             $.post("archivo.php?guardar=1", order); // ATENCIÓN AL CAMBIO. TE LO EXPLICO LUEGO
  13.         }});
  14.     });
  15. });    
  16. </script>
  17.    
  18.    
  19.   <div id="contentLeft">
  20.             <ul>
  21.                 <?php
  22.                 $query  = "SELECT * FROM smilie ORDER BY displayorder ASC";
  23.                 $result = mysql_query($query);
  24.                
  25.                 while($row = mysql_fetch_array($result, MYSQL_ASSOC))
  26.                 {
  27.                 ?>
  28.                     <li id="recordsArray_<?php echo $row['smilieid']; ?>"><img src= "<?php echo $row['smiliepath']?>" height="18"><?php echo " " . $row['title']; ?> </li>
  29.                 <?php } ?>
  30.             </ul>
  31.         </div>
  32.  
  33. <?php
  34. // esta parte es mia
  35. } // fin del primer archivo
  36. else { // comienza el segundo
  37. ?>
  38.  
  39. <?php
  40. include('global.php');
  41.  
  42. $action                 = mysql_real_escape_string($_POST['action']);
  43. $updateRecordsArray     = $_POST['recordsArray'];
  44.  
  45. if ($action == "updateRecordsListings"){
  46.    
  47.     $listingCounter = 1;
  48.     foreach ($updateRecordsArray as $recordIDValue) {
  49.        
  50.         $query = "UPDATE smilie SET displayorder = " . $listingCounter . " WHERE smilieid = " . $recordIDValue;
  51.         mysql_query($query) or die('Error, insert query failed');
  52.         $listingCounter = $listingCounter + 1;    
  53.     }
  54. }
  55. ?>
  56.  
  57. <?php
  58. // esta parte es mia
  59. }

Ahora, cuando pidan la página que yo he llamado archivo.php, la variable $_GEt['save'] estará vacía, if(empty($_GET['save'])) será verdadero y ejecutará todo lo que hay en ese bloque de código (en este caso enviará el script o todo lo que queramos).

Cuando el script quiere guardar llama a archivo.php?save=1, por lo cual if(empty(_$GET['save'])) será falso y pasará a la sentencia else de más abajo ejecutando el código (en este caso ese pequeñito código que usas para guardar las cosas).

Más generalizado usamos el ?save=1 para diferenciar entre una página y la otra. Podrías usar por ejemplo cualquier otro parámetro, incluso por POST. Ej.: el script llama a archivo.php?otra_variable=1 y tienes que sustituit empty($_GET['save']) por empty($_GET['otra_variable']) y punto.

empty(...) es una función que nos dice si existe y tiene un valor la variable que le digamos. Yo lo que le pregunto es si existe $_GET['save'], es decir, si han llamado a la página con ?save=1 ; el caso es que a la página le han pasado ese parámetro, $_GET['parametro'] existe y tu puedes diferenciar entre una y otra.

No se si ahora vas mejor o peor, pero si sigues teniendo duda aquí me tienes, puedes preguntar cuantas veces quieras =)
__________________
I (L) Google