Foros del Web » Programando para Internet » PHP »

Consultar e Insertar a la vez en PHP y MySQL

Estas en el tema de Consultar e Insertar a la vez en PHP y MySQL en el foro de PHP en Foros del Web. Buenas tardes colegas. Aqui un notavo solicitando su apoyo, fijense que estoy trabajando en un formulario, que contiene las siguientes caracteristicas: 1 Campo de Busqueda ...
  #1 (permalink)  
Antiguo 09/11/2011, 17:43
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tlaxcala, Mexico
Mensajes: 1
Antigüedad: 12 años, 5 meses
Puntos: 0
Consultar e Insertar a la vez en PHP y MySQL

Buenas tardes colegas.

Aqui un notavo solicitando su apoyo, fijense que estoy trabajando en un formulario, que contiene las siguientes caracteristicas:

1 Campo de Busqueda de claves
5 Campos de captura.
1 Boton Insertar

Dicho formulario realiza las siguientes funciones:

1. Consulto una clave en mi base de datoscon AJAX, de la siguiente forma:

index.php:

<td rowspan=3 align=center>
<form name="frmbusqueda" action="" onsubmit="buscarDato(); return false">
<div align="center">Clave:
<input type="text" name="dato"/>
</div>
</form>
<fieldset><legend>Resultado</legend>
<div id="resultado"></div>
</fieldset>
</td>
<td bgcolor=white align=center>
Matutino:
</td>

<script>
function calc1() {
var n1 = parseInt(document.MyForm.surtm.value);
var n2 = parseInt(document.MyForm.extram.value);
var n3 = parseInt(document.MyForm.devm.value);
var n4 = parseInt(document.MyForm.solm.value);
document.MyForm.realm.value=n1+n2-n3;
document.MyForm.negm.value=n4-n1;
}
</script>

<form name="MyForm">
<td align=center>
<input type="text" name="solm" size=5 style="text-align:center" value="<? if (isset($_POST['solm'])) echo $_POST['solm']; ?>">
</td>

<td align=center>
<input type=text name="surtm" size="5" style="text-align:center" value="<? if (isset($_POST['surtm'])) echo $_POST['surtm']; ?>">
</td>

<td align=center>
<input type="text" name="extram" size="5" style="text-align:center" value="<? if (isset($_POST['extram'])) echo $_POST['extram']; ?>">
</td>

<td align=center>
<input type=text name="devm" size=5 style="text-align:center" value="<? if (isset($_POST['devm'])) echo $_POST['devm']; ?>">
</td>

<td align=center>
<input type="text" name="realm" size="5" readonly="readonly" style="text-align:center" value="<? if (isset($_POST['realm'])) echo $_POST['realm']; ?>">
</td>

<td align=center>
<input type=text name="negm" size=5 readonly="readonly" style="text-align:center" value="<? if (isset($_POST['negm'])) echo $_POST['negm']; ?>">
</td>

<td>
<input type="button" value="Calcular" onclick="calc1()"></form>
</td>
</tr>

funciones.js:
// JavaScript Document
function nuevoAjax(){
var xmlhttp=false;
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(E){
xmlhttp = false;
}
}

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}

return xmlhttp;
}

function buscarDato(){
resul = document.getElementById('resultado');

bus=document.frmbusqueda.dato.value;

ajax=nuevoAjax();
ajax.open("POST", "consulta.php",true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
resul.innerHTML = ajax.responseText
}
}
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajax.send("busqueda="+bus)

}

consulta.php
<?php
require('conexion2.php');

$busqueda=$_POST['busqueda'];
$cadbusca="SELECT * FROM matcur WHERE Clav_Cat = '$busqueda' LIMIT 1;";
?>
<table style="width:100%;" border="1px">
<tbody>
<tr>
<td class="clav_alm">Clave Almacen</td>
<td class="descrip">Descripcion</td>
<td class="pres">Presentacion</td>
</tr>
<?php
$result=mysql_query($cadbusca, $conectar);
$i=1;
if ($row = mysql_fetch_array($result)){
echo "
<tr>
<td class=\"clav_alm\">".$row['Clav_Almac']."</td>
<td class=\"descrip\">".$row['Descrip']."</td>
<td class=\"pres\">".$row['Uni_Med']."</td>
</tr>";
$i++;
}
else { echo "
<tr>
<td colspan=3 align=center>No existe esta clave</td>
</tr>";
}
?>
</tbody>
</table>

Bueno una vez hecho esto, cuando escribo la clave, el sistema busca y muestra el resultado en index.php pero cuando le doy grabar con un boton, no realiza la accion.

Alguien sabe como puedo arreglar este problema?

De forma general lo que hace el formulario es:

Busco clave de acuerdo a lo introducido en el campo, si se encuentra en la base de datos, se muestra y se sigue con la captura de los otros 5 campos, al final deseo grabar, pero no realiza la acción.

Espero me puedan apoyar.
  #2 (permalink)  
Antiguo 09/11/2011, 18:19
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Consultar e Insertar a la vez en PHP y MySQL

Hola amigo.

Yo te recomiendo que usaras el bloque para resaltar el código que ofrece este foro. Se llama Highlight, Lo que haces con esto es colorear el código de una forma en la que los programadores estamos acostumbrados a ver y así para nosotros es más fácil ayudarte.

Lo segundo es sobre tu programa:

Es que hay muchos detalles pero destacan:

Código PHP:
Ver original
  1. $cadbusca="SELECT * FROM matcur WHERE Clav_Cat = '$busqueda' LIMIT 1;";

Está consulta MYSQL no está bien, quita el penúltimo punto y coma ";"

Cita:
Busco clave de acuerdo a lo introducido en el campo, si se encuentra en la base de datos, se muestra y se sigue con la captura de los otros 5 campos, al final deseo grabar, pero no realiza la acción.
Amigo en el archivo PHP que has puesto no hay ningún INSERT o UPDATE para guardar los datos en la base de datos, el formulario no tiene un botón tipo submit si no uno tipo button que ejecuta la función calc1() la cual, como has escrito arrriba, realiza unas sumas pero no envía el formulario a ningún lado.

Otro detalle es éste:

Cita:
ajax.open("POST", "consulta.php",true);
Y el archivo consulta es un PHP que imprime mucho HTML, no te recomiendo que hagas esto.

Los PHP para consultarlos mediante ajax se suelen utilizar para obtener el resultado de algunas decisiones y hacer algún comportamiento manejando está respuesta AJAX con javascript.

Saludos.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.

Etiquetas: consultar, formulario, html, mysql, sql, vez
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 04:24.