PHP - Datos Dinamicos (ayuda)

 
Vista:

Datos Dinamicos (ayuda)

Publicado por Deysi (22 intervenciones) el 28/03/2007 21:37:12
Hola disculpen las molestias tengo un select donde eligo mis productos y quiero que cuandoeleiga unh producto me muestre el precio de ese producto en una caja de texto por favor si alguien sabe como lo puedo hacer se los agradeceria mucho.
Mi codigo de mi select es este

<select name="Producto2" id="select">
<option value="0" <?php if (!(strcmp(0, $row_Productoa['Producto']))) {echo "SELECTED";} ?>>--- Seleccione un Producto ---</option>
<?php
do {
?>
<option value="<?php echo $row_Productoa['Producto']?>"<?php if (!(strcmp($row_Productoa['Producto'], $row_Productoa['Producto']))) {echo "SELECTED";} ?>><?php echo $row_Productoa['Producto']?></option>
<?php
} while ($row_Productoa = mysql_fetch_assoc($Productoa));
$rows = mysql_num_rows($Productoa);
if($rows > 0) {
mysql_data_seek($Productoa, 0);
$row_Productoa = mysql_fetch_assoc($Productoa);
}
?>
</select>
</div></td>

y el de mi texto Dinamico es

<input name="Precio1" type="text" id="Precio12" style="text-align:right" onFocus="Costo1();" onKeyPress="return(currencyFormat(this,',','.',event))
" value="<?php echo $row_Precio['PrecioPacto']; ?>">

Pero solo me muestra el precio de mi primer producto

hice una consulta de donde estoy galando mi texto dinamico

SELECT productomysql.PrecioPacto
FROM productomysql
WHERE productomysql.Producto ='$row_Productoa[Producto] '

por favor ayudenme

Deysi Laura
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Datos Dinamicos (ayuda)

Publicado por Carlos Guimaraenz (74 intervenciones) el 28/03/2007 22:36:08
Hola Laura! La naturaleza de ese tipo de problemas te obliga a utilizar AJAX (puedes encontrar buenos ejemplos de como utilizarlo, no es dificil), ya que lo que buscas es mostrar sólo el precio relativo al producto y no tener que recargar toda la página.

Busca la manera de trabajar con AJAX y verás lo sencillo y útil que es... Un beso!
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

RE:Datos Dinamicos (ayuda)

Publicado por deysi (22 intervenciones) el 28/03/2007 23:50:51
hola tendras algun ejemplos que me puedieras a hacer el favor de enviar ya que eh contrado ejemplos y los eh adaptado pero no me funcionan como yo quiero.

por favor ayudame es para una tarea de la universidad.
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

RE:Datos Dinamicos (ayuda)

Publicado por Carlos Guimaraenz (74 intervenciones) el 29/03/2007 03:46:24
Te explico un poco con algunos ejemplos, que luego tendrás que adaptar a tu problema (si hace falta te podemos ayudar).

Lo que necesitas es una parte de código de JavaScript y otra de PHP (o ASP).

En el evento onChange de tu SELECT, llamarás al código de JavaScript, el cuál a través del objeto XMLHttpRequest se comunicará con el servidor. Para ponertelo en claro, hace un pedido de información y lo que le es devuelto es lo que tú necesitas utilizar. Así que vamos a la acción:

Tu página tendría algo así (mantengo tu estructura):
------------------
principal.php
------------------
<select name="Producto2" id="select" onChange="mostrarPrecio(this.value)">
... ...
... ...
</select>
<input name="Precio1" type="text" id="Precio12" style="text-align:right" onFocus="Costo1();" onKeyPress="return(currencyFormat(this,',','.',event))
" value="<?php echo $row_Precio['PrecioPacto']; ?>">
-----------------------------------------------------------------------------------------------------

Éste es el código que necesitarás siempre (vamos a llamarlo ajax.js):
------------
ajax.js
------------
var xmlHttp

function mostrarPrecio(codProducto) {
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Tu navegador no soporta AJAX!");
return;
}
var url="obtenerPrecios.php";
url=url+"?cod="+codProducto;
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

function stateChanged()
{
if (xmlHttp.readyState==4)
{
document.getElementById("Precio12").innerHTML=xmlHttp.responseText;
}
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
-----------------------------------------------------------------------------------------------------

En tu página php, harías:
---------------------------
obtenerPrecios.php
---------------------------
<?php
// conectar, elegir DB, etc (te lo dejo a tí)
// la variable $conn es la asociada a la conexión, y $query contiene la consulta
$fila = mysql_query($query,$conn);
echo $fila["PrecioPacto"];
?>
-----------------------------------------------------------------------------------------------------
Con todo ésto, cada vez que selecciones un producto diferente, te mostrará el precio en el input de id Precio12.

Espero que te funcione, lo adapté a medias y no lo probé... intenta ajustarlo a tus requerimientos, y cualquier cosa avisa. Un beso!
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

RE:Datos Dinamicos (ayuda)

Publicado por deysi (22 intervenciones) el 29/03/2007 21:19:27
Hola a todos un favor necesito hacer una web donde al elegir mi producto me muestre el precio del producto en una caja de texto ya logre que me lo mostrara pero en un select y cada que eligo otro selectdeproducto me muestra el precio en los seleccdeprecio. me lo repite en todos lo select de precio

como le hago para que me muestre el precio en la misma fila de la tabla en la que esta mi producto.
este es micodigo por favor ayudenme
de antemano gracias.
deysi

Form1Prueba.php
?
$server="localhost";
$user="root";
$pass="dljidr";
$bd="administracion";
$link=mysql_connect($server,$user,$pass);
mysql_select_db($bd);

function GetAll($sSql, &$RowCount){
global $link;//hace que pueda utilizar la variable $link de afuera en el ambito de la funcion.
//$hQuery = mysql_query($sSql,$link);
$hQuery = mysql_query("SELECT * FROM clientemysql, productomysql WHERE Password ='$_REQUEST[Password]' and clientemysql.Id_Cliente = productomysql.Id_Cliente ");

$RowCount = 0;
//echo $sSql . "<br><br>";
while ($aRow = @mysql_fetch_array($hQuery)){
$RowCount++;
$aRows[] = $aRow;
}
if ($RowCount > 0)
return $aRows;
}

function GetALlClientes(&$c){
$sSql="select * from productomysql";
return GetAll($sSql,$c);
}

function GetOneClientProducts($aid,&$c){
$sSql="select * from productomysqlplus where Id_Producto='$aid'";
return GetAll($sSql,$c);
}

?>

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Forma 1</title>
<script language="javascript">
function getXMLHTTPRequest() {
try {
req = new XMLHttpRequest();
} catch(err1) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch (err2) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch (err3) {
req = false;
}
}
}
return req;
}

var http = getXMLHTTPRequest();

function GetProductos(se) {
var myurl = 'form1productosprueba.php';
//myRand = parseInt(Math.random()*999999999999999);
if(se[se.selectedIndex].value!=0){
var modurl = myurl+"?cl="+se[se.selectedIndex].value;
http.open("GET", modurl, true);
http.onreadystatechange = callBackProductos;
http.send(null);
}
}

function callBackProductos() {
if (http.readyState == 4) {
if(http.status == 200) {
document.getElementById('productos').innerHTML = http.responseText;
}
} else {
document.getElementById('productos').innerHTML = '<img src="anim.gif">';
}
}

function alertar(se){
alert(se[se.selectedIndex].value)
}
</script>

<style type="text/css">
<!--
body {
background-image: url(Imagenes/fons.gif);
}
-->
</style></head>
<body>
<div align="center">
<table width="263" border="0">
<tr>
<td> </td>
</tr>
<tr>
<td width="257"> <h2 align="center"><span class="Estilo2"> <font color="#0000FF">Pedidos </font></span></h2>
</td></tr>
</table>

</div>
<form action="pagina_mail.php" method="post"><div align="center">
<table width="200" border="1">
<tr>
<td>jjjjjjjjj</td>
<td> </td>
<td>jjjjjjjjjjjjj</td>
</tr>
<tr>
<td><select name="clientes" onchange="GetProductos(this)">
<option value="0" >--- Seleccione el Cliente ---</option>
<?
$row1=GetALlClientes($c);
for($i=0;$i<$c;$i++){
?>
<option value="<?=$row1[$i]["Id_Producto"]?>" selected="selected">
<?=$row1[$i]["Producto"]?>
</option>
<? } ?>
</select></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><select name="select" onchange="GetProductos(this)">
<option value="0" >--- Seleccione el Cliente ---</option>
<?
$row1=GetALlClientes($c);
for($i=0;$i<$c;$i++){
?>
<option value="<?=$row1[$i]["Id_Producto"]?>" selected="selected">
<?=$row1[$i]["Producto"]?>
</option>
<? } ?>
</select></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><select name="select2" onchange="GetProductos(this)">
<option value="0" >--- Seleccione el Cliente ---</option>
<?
$row1=GetALlClientes($c);
for($i=0;$i<$c;$i++){
?>
<option value="<?=$row1[$i]["Id_Producto"]?>" selected="selected">
<?=$row1[$i]["Producto"]?>
</option>
<? } ?>
</select></td>
<td><div align="center">
</div></td>
</tr>
</table>
</div>
<div id="productos">
<p align="center">
<input type="submit" name="Submit" value="Enviar" />
</p>
</div>
</form>
<p> </p>
</body>
</html>

y estsa es mi pagina Form1productosPruebas.php
<?
$server="localhost";
$user="root";
$pass="dljidr";
$bd="administracion";
$link=mysql_connect($server,$user,$pass);
mysql_select_db($bd);

//Elige el producto
function GetAll($sSql, &$RowCount){
global $link;//hace que pueda utilizar la variable $link de afuera en el ambito de la funcion.
$hQuery = mysql_query($sSql,$link);
$RowCount = 0;
//echo $sSql . "<br><br>";
while ($aRow = @mysql_fetch_array($hQuery)){
$RowCount++;
$aRows[] = $aRow;
}
if ($RowCount > 0)
return $aRows;
}

function GetOneClientProducts($aid,&$c){
$sSql="select * from productomysqlplus where Id_Producto='$aid'";
return GetAll($sSql,$c);
}

?>
<!-- Aqui fue donde agregue lo de la funcion para el alert ok?-->
<style type="text/css">
<!--
.Estilo2 {color: #000000}
body {
background-image: url(Imagenes/fons.gif);
}
-->
</style>

<div align="center"></div>
<p> </p>
<div align="center">
<table width="426" height="114" border="0">
<tr>
<td width="233" height="34"><h3 align="center"><font color="#0000FF">Productos</font></h3></td>
<td width="164"><h3><font color="#0000FF">Cantidad </font></h3></td>
</tr>
<tr>
<td height="42"><div align="center">
<select name="select1" id="select1" onChange="alertar(this)">
<option value="0" >--- Seleccione un Producto ---</option>
<?
$row1=GetOneClientProducts($_GET["cl"],$c);
for($i=0;$i<$c;$i++){
?>
<option value="<?=$row1[$i]["PrecioPacto"]?>" selected>
<?=$row1[$i]["PrecioPacto"]?>

</option>
<? }?>
</select>
</div></td>
<td><input name="Cantidad1" type="text" id="Cantidad1" />
<?
$row1=GetOneClientProducts($_GET["cl"],$c);
for($i=0;$i<$c;$i++){
?>
<option value="<?=$row1[$i]["PrecioPacto"]?>" selected>
<?=$row1[$i]["PrecioPacto"]?> </option>
<? }?>
</td>
</tr>
<tr>
<td height="21"><select name="select" id="select2" onChange="alertar(this)">
<option value="0" >--- Seleccione un Producto ---</option>
<?
$row1=GetOneClientProducts($_GET["cl"],$c);
for($i=0;$i<$c;$i++){
?>
<option value="<?=$row1[$i]["PrecioPacto"]?>" selected>
<?=$row1[$i]["PrecioPacto"]?>
</option>
<? }?>
</select></td>
<td height="21"> </td>
</tr>
<tr>
<td height="21"><select name="select" id="select2" onChange="alertar(this)">
<option value="0" >--- Seleccione un Producto ---</option>
<?
$row1=GetOneClientProducts($_GET["cl"],$c);
for($i=0;$i<$c;$i++){
?>
<option value="<?=$row1[$i]["PrecioPacto"]?>" selected>
<?=$row1[$i]["PrecioPacto"]?>
</option>
<? }?>
</select></td>
<td height="21"> </td>
</tr>
<tr>
<td colspan="2"><div align="center">
</div>
<div align="center"> </div></td>
</tr>
</table>
</div>
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