字符串参数无法传递

时间:2011-04-20 04:13:30

标签: php javascript

我对此代码感到困惑

if($filter_col!=null && $filter_val!=null)
        $filter = $filter_col."|".$filter_val;      
        $prevpage = $current_page-1;
        printf('<ul class="pagination" style="float:right;">');
    if ( $current_page > 1 ) {       
        echo "<li><a href='#' onclick='loadPage(1,$filter)'>First</a> \n </li>";
        echo "<li><a href='#' onclick='loadPage($prevpage,$filter)'>Prev</a> \n </li>";
    }


function loadPage(page,filter){var dataString;  

dataString = 'page='+ page+'&filter='+filter;  $.ajax({
url: "page_data.php", //file tempat pemrosesan permintaan (request)
type: "GET",
data: dataString,
    success:function(data)
    {
        $('#divPageData').html(data);
    }});}

当我用任何字符串填充$ filter以及空字符串例如'oke'然后它有一个错误说oke没有定义,但是当我填充$ filter适合任何数字时它运行良好 谁能帮我?提前谢谢......

1 个答案:

答案 0 :(得分:2)

当您填写像$filter这样的php var时,请将其逐字插入Javascript中,您必须确保它变为有效的javascript。 e.g:

$filter = 'oke';
$prevpage = 1;

... onclick='loadPage($prevpage,$filter)' ...

将成为

... onclick='loadPage(1,oke)' ...

这是无效的Javascript,因为脚本中没有名为“oke”的变量。您必须执行以下操作之一:

$filter = json_encode('oke');
$prevpage = json_encode(1);

将您的PHP变量值转换为原生javascript值,或者至少用代码的javascript部分中的引号括起变量:

... onclick='loadPage(\'$prevpage\', \'$filter\')' ...