Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Variable php no incrementa en función javascript

Estas en el tema de Variable php no incrementa en función javascript en el foro de PHP en Foros del Web. Bueno mi problema es el siguiente: Mi variable incremental de php es $controlRepeticion la cual es definida como 1 en ambito global. Creo otra variable ...
  #1 (permalink)  
Antiguo 11/03/2015, 15:27
 
Fecha de Ingreso: diciembre-2013
Mensajes: 5
Antigüedad: 10 años, 11 meses
Puntos: 0
Exclamación Variable php no incrementa en función javascript

Bueno mi problema es el siguiente:
Mi variable incremental de php es $controlRepeticion la cual es definida como 1 en ambito global.
Creo otra variable llamada contador que también será incremental pero afectará a los elementos html (esta funciona correctamente).
Mi función crearCampos() insertará campos y filas en una tabla html ya creada en la cual se insertará texto html pasando la variable JS, contador, a modo de identificador de campo. En la siguiente celda se inserta un imput text y se le pasa la variable JS, contador, para añadirla al nombre. De este modo si se ejecuta una vez crearCampos() se creará un imput text llamado strTexto1, la segunda vez strTexto2, y asi sucesivamente...
Anteriormente a esto se ha creado un juego de registros llamado datosSlider que hace un select de strTexto1, strTexto2, strTexto3, ... ,strTexto10. Si nos fijamos la celda 2 tiene como valor una llamada a servidor para obtener strTexto+$controlRepeticion, esto en un primer caso sería strTexto1. Hasta aqui todo bien, luego de esto la variable php $controlRepeticion se incrementa por 1, debiendo cambiar el nombre del campo strTexto1 a strTexto2, pues no lo hace.

De último se encuentra el código responsable de revisar si en cada registro strTexto hay algun valor, y si esto es verdad ejecutar la funcion javascript crearCampos()...

En pocas palabras La tabla me muestra cuando strTexto(n) no esta vacía y me crea los campos correspondientes, el problema es que no me llena los campos con los valores que están escritos en las tablas mysql



Código:
<?php $controlRepeticion = 1;	?>
<script type="text/javascript">
	var contador = 1;
    function crearCampos()
	{	
		var table = document.getElementById("mitabla");
		{			
			  var fila = table.insertRow(8);
		      var celda1 = fila.insertCell(0);
			  var celda2 = fila.insertCell(1);
                        celda1.innerHTML = "Texto "+contador+":";

			  celda2.innerHTML = "<input type='text' name='strTexto"+contador+"'  size='45' value='<?php echo htmlentities($row_datosSlider['strTexto'.$controlRepeticion], ENT_COMPAT, 'iso-8859-1'); ?>' size='45'/>";

<?php global $controlRepeticion; $controlRepeticion++;?>
			  
			 
		}
}
<?php
		$repeticion=1; 		
		while(!empty($row_datosSlider['strTexto'.$repeticion]))
		{			
			?>
			<script type="text/javascript">	
			crearCampos();			
			</script>	
			<?php			
			$repeticion++;					
		}
	?>
Traté de ser lo mas claro que pude, si no me entendieron algo con gusto les aclaro. Les agradezco cualquier ayuda que me puedan aportar... mi proyecto esta en alto hasta solucionar esto :(
  #2 (permalink)  
Antiguo 11/03/2015, 15:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Variable php no incrementa en función javascript

Primero te pido que de verdad estudies las diferencias entre Javascript (cliente) y PHP (servidor), porque sencillamente no puedes ejecutar código PHP desde el lado de Javascript como lo estás haciendo.

Está completamente fuera de contexto lo que haces, y me consta que no tienes clara la separación entre ambas tecnologías.

So, ¿por qué crees que funcionaría?

Observa bien:
Código PHP:
Ver original
  1. <script>
  2. function foo() {
  3. <?php echo 'OK'; ?>
  4. }
  5. </script>

En el ejemplo, el código PHP se ejecuta primero en el servidor, y de ahí lo único que obtienes en el navegador es lo siguiente:
Código PHP:
Ver original
  1. <script>
  2. function foo() {
  3. OK
  4. }
  5. </script>

¿Ahora entiendes lo que sucede con tu código?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 11/03/2015, 15:56
 
Fecha de Ingreso: diciembre-2013
Mensajes: 5
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: Variable php no incrementa en función javascript

Muchisimas gracias por tu respuesta pateketrueke

Mmm no me queda del todo claro, disculpa mi ignorancia, entiendo que tengo un problema con el uso del php dentro de una funcion javascript, esto simplemente no se hace ¿cierto?.

Entonces, lo que entiendo es que mi uso de $controlRepeticion es erroneo pero no veo manera de como insertar la variable javascript dentro de la llamada a servidor por strTexto(n)

htmlentities($row_datosSlider['strTexto'.$controlRepeticion]

Si hay alguna forma de meter a contador donde está $controlRepeticion esa sería mi salvación...
  #4 (permalink)  
Antiguo 11/03/2015, 16:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Variable php no incrementa en función javascript

En realidad también estás abordando el problema de una forma muy mala (sin ofender), porque en teoría no hay necesidad de agregar un sufijo numérico únicamente para agrupar elementos de un formulario.

Para eso existe la notación de array:
Código PHP:
Ver original
  1. <input name="foo[]" value="a">
  2. <input name="foo[]" value="b">
  3. <input name="foo[]" value="c">

De esta manera al recibir los datos ya vendrán agrupados por índice, lo cual resulta en un array.

Ahora bien, puedes tener varios elementos relacionados entre sí por su índice:

Código PHP:
Ver original
  1. <input name="foo[algo]" value="x">
  2. <input name="bar[algo]" value="y">

Esto tiene la ventaja de ser fácilmente iterable:
Código PHP:
Ver original
  1. foreach (array_keys($_POST['foo']) as $key) {
  2.   $foo_value = $_POST['foo'][$key];
  3.   $bar_value = $_POST['bar'][$key];
  4.  
  5.   echo "$foo_value, $bar_value"; // x, y
  6.  
  7.   echo $key; // algo
  8. }

¿Se entiende la idea?

Así ya no tienes que jugar a hacer trucos chinos entre Javascript y PHP.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 11/03/2015, 16:19
 
Fecha de Ingreso: diciembre-2013
Mensajes: 5
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: Variable php no incrementa en función javascript

Vale, se entiende la idea, iré a estudiar estas posibilidades, muchas gracias por la ayuda.

Etiquetas: funcion, incremental, javascript+php, js, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:43.