我想在html()
内部获取javascript函数代码看起来像
var test = getParameterByName('page');
$(".pageContainer").html("<?php echo check("+ test")['content']; ?> ");
我尝试了很多不同的组合,但都没有效果。我是javascript的新手。
提前致谢
答案 0 :(得分:0)
你不能像这样混合javascript和php。当php在服务器端工作时,Javascript在clint端工作。
您可以使用ajax向服务器询问响应。
Javascript方面:
var test = getParameterByName('page');
$(".pageContainer").load('foo.php?key=' + encodeURIComponent(test));
PHP方面:
<?php
// foo.php
// do something ....
echo check($_GET['key'])['content'];
答案 1 :(得分:0)
假设在JavaScript可以触及之前服务器没有处理<?php
,那应该有效:JavaScript将获取参数并将类pageContainer
的所有元素的HTML更改为
<?php echo check(X)['content']; ?>
其中X
是getParameterByName
的结果。但是,我想不出将它放在某些HTML中的正当理由。更有可能的是,您希望执行 PHP 功能,不 JavaScript 功能。如果是这样的话,那不是那么简单;你必须创建一个新的PHP页面,其唯一目的是执行该函数并使用AJAX来检索它。
答案 2 :(得分:0)
试试这个,
$(".pageContainer").html(check(test)['content']);
如果需要html()中的javascript功能,那么js check()
应该return an array
喜欢,
function check(test){
var arr=[];
// your code
arr['content']='some value';
return arr;
}
如果check()
是php function
,那么您需要使用ajax()之类的,
$(function(){
var test='your value';
$.ajax({
url:'function.php',
dataType:'json',
data:{action:'check',test:test},
type:'POST',
success:function(data){
$(".pageContainer").html(data.content);
}
});
});
功能.php页面
<?php
$action=isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
if($_REQUEST['action'] == 'check'){
echo json_encode(array('content'=>$_REQUEST['test']));
return;
}
?>
答案 3 :(得分:0)
jQuery中的.html()函数将接受函数作为参数。请参阅https://api.jquery.com/html/#html2所以,使用您的示例:
$(".pageContainer").html( function() {
//Get the html content you are looking for
//Perhaps $.get() [https://api.jquery.com/jQuery.get/] is what you
//are looking for instead of using php inline here
});
此外,.getParameterByName()不是javascript或jQuery的内置函数。要复制它,请参阅以下答案:How can I get query string values in JavaScript?
答案 4 :(得分:0)
如果你想从php函数获取值,那么试试
你可以在编辑的php函数代码中传递js变量作为参数
$( document ).ready(function() {
var param=' value from js print in php';
$(".pageContainer").html(" <?php echo te('"+param+"'); ?>");
}); <?php
function te($param){
echo $param;
}
?>
或者如果你想从js本身获取价值,那么试试这个
$( document ).ready(function() {
$(".pageContainer").html( te());
});
function te(){
return "value from js";
}