使用JavaScript的param调用函数

时间:2011-06-10 05:06:55

标签: php javascript

我希望你能帮助我。

我正在尝试从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>

或其他方式吗?

我会更加希望这会让我更轻松一点。

提前致谢

2 个答案:

答案 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);
}