我希望你能帮助我。
我正在尝试从javascript调用php函数。
当我将一个值放在串联的字符串中时,如果我正确地调用了函数,那么在没有连接的情况下放置一个固定值。
我留下我使用的代码。
来自我的控制器的功能:
function size_make_dropdownlist($size_make_id)
{
$output = "<select id='size_make' name='size_make' style='width:100px;'>";
//$output .= $this->new_option('Seleccionar', '0', $size_make_id);
// $query = $this->car_model->get_car_makes();
$options = array('product_id' => id_clean($size_make_id));
$Q = $this->db->getwhere('omc_product_sizes',$options);
if ($Q->num_rows() > 0){
$query = $Q->row_array();
foreach ($query as $row)
{
$output .= "<option value=".$row['product_id'].">Talla ".$row['size']."</option>";
}
}
$output .= "</select'>";
return ($output);
}
功能JAVASCRIPT
function sizes(product){
var phpcodeis="<?php $size_make_dropdownlist=$this->MProducts->size_make_dropdownlist("+product+"); echo $size_make_dropdownlist; ?>";
//$size_make_dropdownlist=$this->MProducts->size_make_dropdownlist("+product+"); echo $size_make_dropdownlist; ?>"; //When use this line work perfectly but i need the another one
document.getElementById("php_code_size").innerHTML=phpcodeis;
alert(product);
}
CODE HTML
<a href="#"
style="display:block; color:#333; font-family:Tahoma; font-size:12px;"
onclick="sizes(1); return false;"> Sizes 1 </a>
<a href="#"
style="display:block; color:#333; font-family:Tahoma; font-size:12px;"
onclick="sizes(2); return false;"> Sizes 2 </a>
<span id="php_code_size"> </span>
或其他方式吗?
我会更加希望这会让我更轻松一点。
提前致谢
答案 0 :(得分:2)
您应该注意PHP在JavaScript之前执行。在大多数情况下,您无法使用JavaScript生成PHP并期望它运行(除非您在后端使用JavaScript并从中获得与PHP的神奇桥梁)。
你可能想要的是从JavaScript发出XHR(AJAX)请求并让PHP服务返回纯数据。然后,JavaScript将从此数据中呈现选项元素,最好是使用HTML模板引擎。
答案 1 :(得分:1)
你可以在内联javascript中嵌入php标签但你不能在javascript文件中这样做。你必须使用ajax调用来从服务器接收值。或者在函数定义之前将值嵌入到html文件中(不是很好的方法!)
在php文件中的某个地方(例如在html的head部分中)
编辑:
<head>
<script type="text/javascript">
var myGlobalFromPHP = <?php echo myFunctionValue ?>; // enclose it in quotes if it's a string.
</script>
</head>
然后在您的javascript文件中,您可以使用此myGlobalFromPHP
function(){
alert(myGlobalFromPHP);
}