代码之家  ›  专栏  ›  技术社区  ›  Nitz

要在javascript函数中将php变量作为参数传递吗?

  •  1
  • Nitz  · 技术社区  · 15 年前


    我想在一个javascript函数中传递php变量。
    我知道这看起来很简单,但我不知道我在哪里遗漏了什么?

        <?php
            while($gg=mysql_fetch_array($lg))
            {
        ?>
            <td id="add_td">
            <?php
            $id = $gg['p_id'];
            echo "<a onclick=cnf('Are you sure you want to delete that?',$id)>"; ?>Delete</a>
            </td>
    <?php
            }
    ?>
    

    在我的javascript函数中

    function cnf(msg,id)
    {
    
         cnf = confirm(msg);
         if(cnf) { 
                parent.location.href = 'p_update.php?d=' + id;          
         }
    }
    


    如果我尝试这样做,那么它会在“cnf”函数上显示错误,并说“unterminated string literal”?

    6 回复  |  直到 15 年前
        1
  •  2
  •   Eldar    15 年前
    if $id is not numeric you should write 
    
    <?php
            while($gg=mysql_fetch_array($lg))
            {
        ?>
            <td id="add_td">
            <?php
            $id = $gg['p_id'];
            echo "<a onclick=cnf('Are you sure you want to delete that?','".$id."')>"; ?>Delete</a>
            </td>
    <?php
            }
    ?>
    
        2
  •  1
  •   Chinmayee G    15 年前

    检查语法

    <?php
        while($gg=mysql_fetch_array($lg))
        {
    ?>
            <td id="add_td">
            <?php
            $id = $gg['p_id'];
            ?>
            <a onclick="cnf('Are you sure you want to delete that?',<?=$id?>);">Delete</a>
            </td>
    <?php
         }
    ?>
    
        3
  •  1
  •   mplungjan    15 年前

    唯一的ID在标签上也是必需的,如果在函数中传递ID而不是我建议的ID,则需要引用它,并给链接ID

    function cnf(link,id) {
      if (confirm("Are you sure you want to delete "+id) {
        link.href = "p_update.php?d=" + id;          
        return true;
      }
      return false;
    }
    
    <?php
      while($gg=mysql_fetch_array($lg)) { 
        $id = $gg['p_id'];
    ?>
      <td id="add_td<?php echo $id; ?>"><a target="_parent" href="#" id="<?php echo $id; ?>" onclick="return cnf(this)">Delete</a></td>
    <?php } ?>
    
        4
  •  1
  •   Alex    15 年前
    foreach($mas as $k=>$v) {
      //echo $k.' = '.$v.'<br>';
      echo("
    
        <input type=\"button\" id=\"delete_id".$k."\" value=\"Blablabla\" onclick=\"alert('".$v."');\"/>
    
      ");
    }
    

    如果我把$k(index)放在那里,它会工作,但是如果string(value是string),我会得到一个错误

    在HTML标记中,这可以工作,但不能作为函数参数!

        5
  •  1
  •   Stephen Rauch Afsar Ali    8 年前

    echo "<a onclick=cnf('Are you sure you want to delete that?','$id')>";
    

    另一个例子, $p 是一些php变量,

    echo "<input type=button value='update' onclick=myfunc('$p')>"
    
        6
  •  0
  •   Kel    15 年前

    如果$id是一个字符串文字,则在将其作为参数传递给<a中的cnf()函数时,应将其放入引号中。。。>标记:

    echo "<a onclick=cnf('Are you sure you want to delete that?', '$id')>";