问题描述
|
我希望你能帮助我。
我正在尝试从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);
}
代码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>
或另一种方式来做到这一点?
我会多一点希望,希望这对我有所帮助。
提前致谢
解决方法
您应该注意,PHP在JavaScript之前执行。在大多数情况下,您无法使用JavaScript生成PHP并不能期望它运行(除非您在后端使用JavaScript并从中建立到PHP的神奇桥梁)。
您可能想要的是从JavaScript发出XHR(AJAX)请求,然后让PHP服务返回纯数据。然后,JavaScript最好使用HTML模板引擎从此数据中呈现选项元素。
, 您可以将php标签嵌入到嵌入式javascript中,但不能在javascript文件中添加。您必须使用ajax调用来从服务器接收值。或在函数定义之前将值嵌入html文件中(不是很好的方法!)
php文件中的某处(例如,在html的头部)
编辑:
<head>
<script type=\"text/javascript\">
var myGlobalFromPHP = <?php echo myFunctionValue ?>; // enclose it in quotes if it\'s a string.
</script>
</head>
然后,您可以在JavaScript文件中使用此this4ѭ
function(){
alert(myGlobalFromPHP);
}