2012-10-31 24 views
4

我不知道这是可能的,但这个页面上我有下面这段代码:如何呼应的东西在一个单独的页面

$moduleHTML = ""; 

while($sqlstmt->fetch()) { 
    $moduleHTML .= "<option value='$dbModuleId'>" . $dbModuleId . " - " . $dbModuleName . "</option>".PHP_EOL; 
    $outputmodule = ""; 
     $outputmodule .= "<p><strong>Module:</strong> " . $dbModuleId . " - " . $dbModuleName . "</p>"; 
} 

但我想呼应变量$outputmodule在另一页。所以下面是对其它页面,其中包括一个把该脚本上述(module.php),并且其中包含的回波,并且其中包含的模块的一部分的下拉菜单的AJAX的代码:

<script type="text/javascript"> 

    function getModules() { 
    var course = jQuery("#coursesDrop").val(); 
    jQuery('#modulesDrop').empty(); 
    jQuery('#modulesDrop').html('<option value="">Please Select</option>'); 
    jQuery.ajax({ 
    type: "post", 
    url: "module.php", 
    data: { course:course }, 
    success: function(response){ 
    jQuery('#modulesDrop').append(response); 
    } 
    }); 


    } 


    </script> 

... 

<? 

$moduleHTML = ""; 
$moduleHTML .= '<select name="modules" id="modulesDrop">'.PHP_EOL; 
$moduleHTML .= '<option value="">Please Select</option>'.PHP_EOL; 
$moduleHTML .= '</select>'; 

echo $outputmodule; 

... 

问题是我收到上述回声未定义的错误。我的问题是,我怎样才能将module.php页面中的$dbModuleId and $dbModuleName回显到editsession.php页面(上面的脚本)?

+0

的唯一方式上追加你的价值观

$outputArray = array(); while($sqlstmt->fetch()) { $outputArray['moduleHTML'] = "<option value='$dbModuleId'>" . $dbModuleId . " - " . $dbModuleName . "</option>".PHP_EOL; $outputArray['outputModule'] = "<p><strong>Module:</strong> " . $dbModuleId . " - " . $dbModuleName . "</p>"; } echo json_encode($outputArray); 

然后我能想到的是将值存储在$ _SESSION变量中。这可能是凌乱的,你必须在完成之后重置$ _SESSION值。 – rws907

+0

您可以使用URL中的var值重定向到其他页面:http://site.tld/?var = yourvarcontent然后在新页面中使用$ _GET ['var']读取var的值。 Idk如果安全是一个问题,如果是这样,我不推荐这种方法。 –

+0

有没有一种方法,而不是ajax实际导航到一个单独的页面,以便能够检索“模块”下拉菜单的下拉值,如果我把code.php页面的代码放到同一页面中editsession.php页面,我可以以某种方式让ajax访问同一页面内的下拉菜单吗? – user1723760

回答

0

,如果你不想使用会话,你可以传回自己的价值观作为一个JSON数组,然后对其进行解码并与jQuery的页面

<script type="text/javascript"> 

function getModules() { 
    var course = jQuery("#coursesDrop").val(); 
    jQuery('#modulesDrop').empty(); 
    jQuery('#modulesDrop').html('<option value="">Please Select</option>'); 
    jQuery.ajax({ 
     type: "post", 
     url: "module.php", 
     data: { course:course }, 
     success: function(response){ 
      var outputjQuery.parseJSON(response) 
      jQuery('#modulesDrop').append(output.moduleHTML); 
      jQuery('#outputModule').html(output.outputModule); 
     }); 
    }); 


} 


</script> 

... 

<? 

$moduleHTML = ""; 
$moduleHTML .= '<select name="modules" id="modulesDrop">'.PHP_EOL; 
$moduleHTML .= '<option value="">Please Select</option>'.PHP_EOL; 
$moduleHTML .= '</select>'; 
$moduleHTML .= '<div id="outPutModule"></div>; 

echo $moduleHTML; 
0

PHP脚本是在不同的请求期间调用的,还是它们包含在一起?如果请求不同,可以将变量存储在$ _SESSION中,并在请求之间使用它。如果在同一个请求中,则该变量可以通过处于相同范围内而可用,也可以使用全局关键字跨范围共享。通常不建议

http://php.net/manual/en/features.sessions.php

http://php.net/manual/en/language.variables.scope.php

全局。还有全局数组的东西。取决于你是否在同一个请求中。

+0

嗨,jQuery的调用取决于用户从editsession.php页面的“课程”下拉菜单中选择的内容。当用户从“课程”下拉菜单中选择一个选项时,它将使用ajax访问module.php页面,并根据选择的课程显示“模块”下拉菜单中的值更改。那么,我应该怎么做? – user1723760

相关问题