質問
「特別な」AJAXリクエストに問題があります。いくつかのコンボを備えたフォームがあります(「選択」タグ)。 MySQL DBから各コンボのアイテムをロードしています。特別なクラスが設計されています。各コンボには「+」ボタンがあります(ポップアップを開き、新しいエントリを追加します)。ユーザーが新しい値を「保存」すると、Ajax要求は実行されるはずですが、何も起こりません。ああ、もう1つの詳細:新しい値がDBで保存されると、ポップアップは自動的に閉じます。
これはポップアップコード(PHP)です。
<?php
require ("class\BD.php");
require ("class\combos.php");
require ("xajax/xajax_core/xajax.inc.php");
$Conex = new BD();
if (isset($_POST['GuardarTipoSist']))
{
$Ajax = new xajax();
function cargarTipoSistema()
{
$Combo = new combos();
$Combo->setParams('cobTipo',$Conex);
$Contenido = $Combo->CargarCombo();
$AjaxResponse = new xajaxResponse();
$AjaxResponse->assign("cobTipo","innerHTML",$Contenido);
}
$Ajax->registerFunction("cargarTipoSistema");
$TipoSist = $_POST['txtTipoSist'];
$Query = "INSERT INTO Tipos_Sistemas VALUES(NULL,'$TipoSist')";
$Conex->query($Query);
$Ajax->processRequest();
echo '<script>alert("Guardado Correctamente"); return true; window.close();</script>';
}
?>
これはHTMLコードです。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ingresar Tipo Sistema - GESPROGAN</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<style type="text/css">
<!--
.Estilo2 {
font-size: 16px;
color: #827BCC;
}
.Estilo12 {
color: #FFFFFF;
font-size: 10px;
font-weight: bold;
font-style: italic;
}
-->
</style></head>
<script type="text/javascript" language="javascript" src="validaciones.js"></script>
<body>
<table width="390" height="270" border="1">
<tr>
<td bordercolor="#F0F0F0" background="images/dominios tipo sistema.png" width="380" height="264"><p> </p>
<p> </p>
<form name="DomTipoSist" action="dominios_tipo.php" method="POST" onsubmit="return validarIngDatHac(); return true;">
<table width="371" height="166" border="1" align="center">
<tr>
<th width="361" height="160" scope="col"><p class="Estilo2">POR FAVOR INGRESE EL NUEVO TIPO DE SISTEMA </p>
<table width="341" height="68" border="1">
<tr>
<td height="27" colspan="2">
<input id="txtTipoSist" name="txtTipoSist" type="text" size="55"/>
</td>
</tr>
<tr>
<td width="162" height="33">
<div align="center">
<input id="GuardarTipoSist" name="GuardarTipoSist" type="submit" value="GUARDAR"/>
</div>
</td>
<td width="163">
<div align="center">
<input id="Cancelar" name="Cancelar" type="button" value="CANCELAR" onclick="javascript:window.close()"/>
</div>
</td>
</tr>
</table>
<p class="Estilo2"><span class="Estilo12"> - GESPROGAN.. <strong><em>© </em></strong>Todos los Derechos Reservados 2010- -</span></p>
</th>
</tr>
</table>
</form>
</td>
</tr>
</table>
</body>
</html>
ajax要求は、BDのすべてのエントリ(新しいものを含む)を使用して、「親形式」のコンボをリロードします。
私の質問は、ポップアップでajaxリクエストを行うことができるということです。またはどうすればこれを行うことができますか?
前もって感謝します!
PS:私の英語でごめんなさい、私は「ネイティブスピーカー」ではありません。
解決
ポップアップではなく、メインウィンドウでAJAXリクエストを実行します。たとえば、ポップアップでフォームを送信するときは、window.opener.cargartiposistema()を実行します。
所属していません StackOverflow