PHP - Function en PHP

 
Vista:

Function en PHP

Publicado por Juan (4 intervenciones) el 25/11/2012 12:06:08
Hola!!!

Llevo mucho tiempo intentando solucionar un problema, pero como tengo pocos conocimientos de PHP no consigo hacerlo! ¿Podríais ayudarme?

Os cuento lo que me ocurre, tengo una funcion muy sencilla:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script>
function asegurar($valor)
{
	rc="<?php
	se_puede_eliminar("16")
	?>";
 
	if (rc=='true') {
		rc = confirm("Seguro que desea eliminar?");
   		return rc;
	}
	else {
		alert("Existen registros con este valor en otras tablas");
		return false;
	}
}
</script>


Funciona perfectamente, el problema es que quiero cambiar el valor de "16" por el valor del parametro $valor. Contra mas lo intento, no consigo nada!!!!

Muchas gracias por vuestra ayuda y tiempo!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Function en PHP

Publicado por xve (6935 intervenciones) el 25/11/2012 22:17:16
Seria tan simple como:
1
se_puede_eliminar($valor);

Si nos puedes comentar con mas detalle que es la función se_puede_eliminar() y que parámetros recibe la función asegurar()
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

Function en PHP

Publicado por Juan (4 intervenciones) el 25/11/2012 23:40:06
Hola xve!

Gracias por contestar! He puesto lo que me dices, pero nada. Sigue dando error. Te mando lo que hace la funcion. Es una funcion que devuelve booleno si existe el registro en una tabla de mysql:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function se_puede_eliminar($condicion) {
 
	global $conexionbd;
 
	$sql="Select * from tbl WHERE intprovincia=$condicion";
	$DatosConsulta = mysql_query($sql, $conexionbd) or die(mysql_error());
	$totalRows_DatosConsulta = mysql_num_rows($DatosConsulta);
 
	if ($totalRows_DatosConsulta==0) {
			return 'true';
		}
		else
                 {
			return 'false';
		}
}
?>


Como ves! Es muy sencillo, pero no consigo darle un valor....

Gracias! Ya me diras que puedo hacer! Un saludo!
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 xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Function en PHP

Publicado por xve (6935 intervenciones) el 26/11/2012 07:08:11
Hola Juan, pero que error te da?
Puedes mostrarnos el valor de la variable $sql?
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

Function en PHP

Publicado por Juan (4 intervenciones) el 26/11/2012 10:18:54
Hola!

Llamo a la funcion desde una imagen que tengo en el formulario:

<img src="images/icono_remove.png" width="16" height="16" onClick="javascript:return asegurar(<?php echo $row_DatosProvincias['intprovincia']; ?>);"/>

Es hay donde llamo a la funcion y le paso un identificador de la tabla.

Si en la funcion le pongo:
rc="<?php se_puede_eliminar($valor) ?>";

No me reconoce la variable... Lo he intentado de todas las maneras, pero nada.
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 xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Function en PHP

Publicado por xve (6935 intervenciones) el 26/11/2012 15:17:28
Hola Juan, no puedes llamar a una función javascript, la cual desde javascript cogerá el valor mediante PHP... no te funcionara, ya que el PHP únicamente se ejecuta en el servidor, no en el navegador.
Si quieres conseguir esto, tendrás que utilizar AJAX, que son llamadas javascript al servidor donde si puede ejecutar PHP.

Si nos das mas información, intentare explicarte con mas detalle sobre lo que quieres hacer, ok?
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

Function en PHP

Publicado por Juan (4 intervenciones) el 27/11/2012 03:18:52
OK! Entonces debo de utilizar AJAX... si ya me cuesta el PHP!

Te explico como lo tengo montado: en el PHP tengo creado una consulta a BBDD y me lista todos los registros de ella en la pagina. Cuando pulsas un boton, debe de ejecutar una funcion para verificar si el registro existe en otra BBDD y si eso avisa al usuario diciendo que no se puede eliminar por ningun motivo... Todo esto funciona, menos lo de que la funcion reciba la variable seleccionada en la pagina, vamos! Que tengo que ponerle yo el numero en la funcion.

En resumidas, cuando le da al boton->Funcion asegurar(codigo)->Funcion se_puede_eliminar (codigo)

Te mando todo el código:

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<?php require_once('../Connections/conexionbd.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }
 
  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
 
  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
 
mysql_select_db($database_conexionbd, $conexionbd);
$query_DatosProvincias = "SELECT * FROM tblprovincias ORDER BY strprovincia ASC";
$DatosProvincias = mysql_query($query_DatosProvincias, $conexionbd) or die(mysql_error());
$row_DatosProvincias = mysql_fetch_assoc($DatosProvincias);
$totalRows_DatosProvincias = mysql_num_rows($DatosProvincias);
 
function se_puede_eliminar($condicion) {
 
	global $conexionbd;
	$sql="Select * from tbl WHERE intprovincia=$condicion";
	$DatosConsulta = mysql_query($sql, $conexionbd) or die(mysql_error());
	$totalRows_DatosConsulta = mysql_num_rows($DatosConsulta);
 
	if ($totalRows_DatosConsulta==0) {
			return 'true';
		}
		else
		{
			return 'false';
		}
}
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/plantillaadmin.dwt.php" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<!-- InstanceBeginEditable name="doctitle" -->
<title>Administracion provincias</title>
<!-- InstanceEndEditable -->
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
<link href="../css/estiloadmin.css" rel="stylesheet" type="text/css" />
</head>
 
<body>
 
<div class="container">
  <div class="header"><?php include("../includes/cabecera_admin.php"); ?></div>
  <div class="sidebar1">
  <?php include("../includes/menuizquierda_admin.php"); ?>
    <p>&nbsp;</p>
    <!-- end .sidebar1 --></div>
  <div class="content"><!-- InstanceBeginEditable name="ContenidoDerechaAdmin" -->
 
<script>
function asegurar($valor)
{
 
	rc="<?php
	se_puede_eliminar(16)
	?>";
 
	if (rc=='true') {
		rc = confirm("Seguro que desea eliminar?");
   		return rc;
	}
	else {
		alert("Existen registros con este valor en otras tablas");
		return false;
	}
}
</script>
 
    <form action="hola" method="post" name="form1" id="form1">
 
    <h1>Lista de Provincias</h1>
    <p><a href="provincias_add.php"><img src="images/icono_add.png" width="16" height="16" />A&ntilde;adir Registro</a></p>
    <p></p>
    <table width="60%" border="0"  align="center" cellpadding="2" cellspacing="2">
      <tr class="tablacabecera">
        <td width="500px">Provincia</td>
        <td>Accion</td>
      </tr>
      <?php do { ?>
  <tr>
    <td  style="background:#F7F7F7"; width="90px" >
    	<div style="width:100%; overflow:auto; font-size:10px">
        <?php echo $row_DatosProvincias['strprovincia']; ?>
		</div>
    </td>
    <td>
       <div id="accion" <?php if(mysql_num_rows($DatosProvincias) == 0){ echo ' style="display: none; width:100%; overflow:auto; font-size:10px"'; } ?>>
    <a href="provincias_edit.php?recordID=<?php echo $row_DatosProvincias['intprovincia']; ?>"><img src="images/icono_edit.png" width="16" height="16" /></a> <a href="provincias_remove.php?recordID=<?php echo $row_DatosProvincias['intprovincia']; ?>"><img src="images/icono_remove.png" width="16" height="16" onClick="javascript:return asegurar(<?php echo $row_DatosProvincias['intprovincia']; ?>);"/>
    </a>
    </div>
    </td>
  </tr>
  <?php } while ($row_DatosProvincias = mysql_fetch_assoc($DatosProvincias)); ?>
    </table>
 
  <!-- InstanceEndEditable -->
  </div>
  <div class="footer">
    <?php include("../includes/pie_admin.php"); ?></div>
  <!-- end .container --></div>
</body>
<!-- InstanceEnd --></html>
</form>
 
<?php
mysql_free_result($DatosProvincias);
?>


Muchisimas gracias por la ayuda!!
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
sin imagen de perfil

Function en PHP

Publicado por Edwin (3 intervenciones) el 03/12/2012 01:17:18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function se_puede_eliminar($condicion)
{
	global $conexionbd;
	$sql="Select * from tbl WHERE intprovincia= '$condicion' ";
	$DatosConsulta = mysql_query($sql, $conexionbd) or die(mysql_error());
	$totalRows_DatosConsulta = mysql_num_rows($DatosConsulta);
 
	if ($totalRows_DatosConsulta==0)
       {
		mensaje =  'true';
	}
	else
	{
                 mensaje = 'false';
	}
       return mensaje;
}


Igual no te va ha funcionar utilizando ajax ya que la funcion PHP esta mal planteada y nunca te va ha funcionar ya que return devulve un estado o un valor y nunca se debe igualar a un valor o a un estado.
Es por conocimiento basico de programacion.
Copia y pega la sentencia y veras que ahi va ha funcionar bien.
Cualquier consulta me la haces llegar.
Soy webmaster, en caso tengas proyectos en mente realizar me pasas la voz a mi correo, la consulta es gratuita.
Saludos Cordiales.
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