Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建一个弹出窗口或iframe,返回joomla中的变量_Javascript_Php_Iframe_Joomla_Popup - Fatal编程技术网

Javascript 创建一个弹出窗口或iframe,返回joomla中的变量

Javascript 创建一个弹出窗口或iframe,返回joomla中的变量,javascript,php,iframe,joomla,popup,Javascript,Php,Iframe,Joomla,Popup,我真的需要帮助。我是一个新手程序员,真的不知道如何在joomla做到这一点 我需要创建一个弹出窗口或iframe,从父页面传递变量 基本上是这样的 用户将在输入框中输入字符串,然后单击搜索。单击搜索按钮时,会出现一个弹出窗口,允许他选择最接近的匹配项,并将所选值返回主页 我所做的就是这样 <input type="text" name="projectn" id="projectn" value="<?php echo $row->address?>" size="50"

我真的需要帮助。我是一个新手程序员,真的不知道如何在joomla做到这一点

我需要创建一个弹出窗口或iframe,从父页面传递变量

基本上是这样的

用户将在输入框中输入字符串,然后单击搜索。单击搜索按钮时,会出现一个弹出窗口,允许他选择最接近的匹配项,并将所选值返回主页

我所做的就是这样

<input type="text" name="projectn" id="projectn" value="<?php echo $row->address?>" size="50" class="input-large" placeholder=" <?php echo JText::_('Project Name if any');?>" /> Enter to populate project info.
<input type="button" value="Search" onclick="JavaScript:makeSelection(this.form, document.getElementById('projectn').value);" />
function makeSelection(frm, proj) {
    alert(proj);
    if(!frm || !proj)
    return;
    targetElement = frm.elements[proj]
    var handle = window.open('http://www.abc.com/abc/child.php?name='+proj, 'Project-Selection', 'width=300,height=200,location=no,menubar=no,status=no,scrollbar=yes,toolbar=no');
在child.php页面中,它如下所示

<?php
define( 'DS', DIRECTORY_SEPARATOR );

//get root folder
 $rootFolder = explode(DS,dirname(__FILE__));

 //current level in diretoty structure
 $currentfolderlevel = 8;

 array_splice($rootFolder,-$currentfolderlevel);

 $base_folder = implode(DS,$rootFolder);


 define( '_JEXEC', 1 );

if (file_exists(dirname(__FILE__) . '/defines.php')) {
include_once dirname(__FILE__) . '/defines.php';
}

if (!defined('_JDEFINES')) {
define('JPATH_BASE', dirname(__FILE__));
require_once JPATH_BASE.'../../../includes/defines.php';
}
require_once JPATH_BASE.'../../../configuration.php';
require_once JPATH_BASE.'../../../includes/framework.php';
require_once JPATH_BASE.'../../../includes/helper.php';
require_once JPATH_BASE.'../../../includes/toolbar.php';

require_once ( JPATH_BASE .DS.'libraries'.DS.'joomla'.DS.'factory.php' );
/* Create the Application */
 $mainframe =& JFactory::getApplication('site');
 $mainframe->initialise();
 $mainframe->route();
 $user =& JFactory::getUser();
 $userid = $user->get('id');
 ?>

 <?php 
  $a = $_GET['name'];
if($a != ""){
$db = JFactory::getDBO();
$db->setQuery("Select * from #__project where project_name like '%$a%'");
$prolists = $db->loadObject();
$npro = count($prolists);
echo $npro;
}
   ?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv"Script-Content-Type" content="text/javascript">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Expires" content="0"> <!-- disable caching -->
<title>Example</title>
<script type="text/javascript">
function makeSlection(frm, proj) {
  alert(proj);
  /*if(!frm || !proj)
    return;
  var elem = frm.elements[proj];
  if(!elem)
    return;
  var val = elem.options[elem.selectedIndex].value;
  opener.targetElement.value = val;*/
  this.close();
}
</script>
</head>
<body>

<form id="fsrm" name="fsrm" action="#">
<span>Names: </span>
<select name="nameSelection" id="nameSelection">
  <option value="holly">Holly</option>
  <option value="golly">Golly</option>
  <option value="molly">Molly</option>
</select>
<input type="button" value="Select Name" onclick="JavaScript:makeSlection(this.form,   document.getElementById('nameSelection').value);">
</form>
</body>
</html>
我不知道为什么或某处是不正确的。大多数代码都是从网上找到的示例代码,所以我不确定它应该如何工作

我需要的是一个搜索按钮,它将一个变量传递给弹出窗口或iframe,然后在弹出窗口中它将访问数据库并给出一个值列表供用户选择。选择后,它将关闭弹出窗口并将值传递回父窗口


是否有人有其他选择或建议如何做到这一点?谢谢

您需要的是一个非常简单的ajax调用,以获取用户可以单击的链接列表,并在弹出窗口中显示该列表

这可以通过组件任务(controller.php中定义的公共方法或子进程)实现。您需要对这个方法进行编码以返回列表(或者更好,让它调用模型中的一个方法来检索列表,然后使用视图对其进行格式化;但是没有什么区别)

为了让Joomla只返回组件的输出,只需将
&tmpl=component
添加到请求中,就不会输出任何模块或模板


jQuery.get()
是启动ajax调用的好方法,但这是一个品味问题。

您让它变得比需要的更复杂。使用JoomlaAPI尽可能多地完成这项工作。如果你看一下核心组件,有很多地方做的事情与你在情态动词中描述的相似。乔姆拉喜欢情态动词。例如,在创建单个文章菜单链接时,您将获得一个模式,允许您选择文章。或者看看批处理。或者查看编辑器下的插件以获取分页符或插入图像或文章。
No configuration file found and no installation code available. Exiting...