Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP打印:quotes上带变量的Javascript函数_Php_Javascript_Function_Quotes - Fatal编程技术网

PHP打印:quotes上带变量的Javascript函数

PHP打印:quotes上带变量的Javascript函数,php,javascript,function,quotes,Php,Javascript,Function,Quotes,我只是想知道是否有更好的方法来写下传递给PHP打印内部调用的javascript函数的PHP变量: while($nav = mysqli_fetch_array($nav_db)){ print '<li> <a href="#" onclick="getProductPage('.$nav['id'].', \''.$name.'\')"> '.$nav['Data'].'

我只是想知道是否有更好的方法来写下传递给PHP打印内部调用的javascript函数的PHP变量:

while($nav = mysqli_fetch_array($nav_db)){
    print  '<li>
             <a href="#" onclick="getProductPage('.$nav['id'].', \''.$name.'\')">
                       '.$nav['Data'].'

             </a>
        </li>';
}
是一个整数,因此JS不需要额外的“”,并且

$name
不是整数,所以我需要这些\'\'用于JS

特别是这一步:

getProductPage('.$nav['id'].', \''.$name.'\')
谢谢


<?php while($nav = mysqli_fetch_array($nav_db)): ?>
  <li>
     <a onclick="getProductPage(<?php echo $nav['id']; ?>, '<?php echo $name; ?>')">
        <?php echo $nav['Data']; ?>
     </a>
  </li>
<?php endwhile; ?>
  • 
    
  • 您应该使用将变量从php传递到javascript。这将确保没有未替换的字符可以破坏javascript

    因此,
    json\u encode($name)
    ,而不是
    $name
    ,等等

    例如:

    print  '<li>
             <a onclick="getProductPage(' . (int) $nav['id'].', ' . json_encode($name) . ')">
                       ' . htmlspecialchars($nav['Data']) . '
    
             </a>
        </li>';
    
    print'
  • ' . htmlspecialchars($nav['Data'])。'
  • ';
    您应该使用将变量从php传递到javascript。这将确保没有未替换的字符可以破坏javascript

    因此,
    json\u encode($name)
    ,而不是
    $name
    ,等等

    例如:

    print  '<li>
             <a onclick="getProductPage(' . (int) $nav['id'].', ' . json_encode($name) . ')">
                       ' . htmlspecialchars($nav['Data']) . '
    
             </a>
        </li>';
    
    print'
  • ' . htmlspecialchars($nav['Data'])。'
  • ';
    您是否考虑过使用jquery和ajax将数据发送到php文件并将json\u编码数组发送回javascript

    范例

    在使用数据类型json向php发送ajax调用后,返回如下vars

    $data['id'] = nav['id'];
    
    echo json_encode($data);
    
    or just $nav['id']
    
    echo json_encode($nav)
    
    ajax{(
        blah,
        blah,
        ...
        success(msg){
        alert(msg.id)
        }
    })
    
    在javascript中。成功后,您可以像这样检索id值

    $data['id'] = nav['id'];
    
    echo json_encode($data);
    
    or just $nav['id']
    
    echo json_encode($nav)
    
    ajax{(
        blah,
        blah,
        ...
        success(msg){
        alert(msg.id)
        }
    })
    
    您可以作为对象访问var
    上面的代码将提醒id的值。您可以将msg.id分配给javascript变量或将其传递给函数…ect

    您是否考虑过使用jquery和ajax将数据发送到php文件并将json_encode数组发送回javascript

    范例

    在使用数据类型json向php发送ajax调用后,返回如下vars

    $data['id'] = nav['id'];
    
    echo json_encode($data);
    
    or just $nav['id']
    
    echo json_encode($nav)
    
    ajax{(
        blah,
        blah,
        ...
        success(msg){
        alert(msg.id)
        }
    })
    
    在javascript中。成功后,您可以像这样检索id值

    $data['id'] = nav['id'];
    
    echo json_encode($data);
    
    or just $nav['id']
    
    echo json_encode($nav)
    
    ajax{(
        blah,
        blah,
        ...
        success(msg){
        alert(msg.id)
        }
    })
    
    您可以作为对象访问var
    上面的代码将提醒id的值。您可以将msg.id分配给javascript变量或将其传递给函数…ect

    谢谢。。我考虑过这个选项,但是我在HTML中包含了所有这些,尽管我可以使用php标记只是使用php的一部分。如果你不想输入echo,可以用速记。谢谢。你能更好地解释我,为什么我永远不应该在标签上留下href?“从不”可能是极端的。只是锚定标记希望被href或name用作锚定,因此,如果没有这两个标记中的任何一个,它可能被认为是无效的。它仍然可以工作,但如果您打算这样编写它,那么最好使用span标记。
    谢谢。。我考虑过这个选项,但是我在HTML中包含了所有这些,尽管我可以使用php标记只是使用php的一部分。如果你不想输入echo,可以用速记。谢谢。你能更好地解释我,为什么我永远不应该在标签上留下href?“从不”可能是极端的。只是锚定标记希望被href或name用作锚定,因此,如果没有这两个标记中的任何一个,它可能被认为是无效的。它仍然可以工作,但如果您打算这样编写它的话,还可以使用span标记。
    谢谢,我今天学习了一个新函数!为了确保我能在正确的模式下使用它,你能从开始给我写下整个部分吗?好的,谢谢,但是现在你也在为打印的var使用json_encode(没有传递给JS),那些\'\'仍然保留着!是吗?@user2120569哦,你是对的,那应该是
    htmlspecialchars
    。如果没有额外的引号,它已经是一个js变量了。对于整数,我更喜欢强制转换,但那只是我自己。谢谢。。。不幸的是,它不工作!没有调用javascript函数,是否存在语法错误?如果我设置$link->set_字符集('UTF8');我需要再次使用htmlspecialchars吗?@user2120569只需在浏览器中查看html源代码,并使用html验证程序确保html正常。顺便说一下,
    htmlspecialchars
    是对字符进行编码,比如
    ,这样它们就不会破坏html。当你输出到html时,不管字符集是什么,你总是需要它。谢谢你,今天我学习了一个新函数!为了确保我能在正确的模式下使用它,你能从开始给我写下整个部分吗?好的,谢谢,但是现在你也在为打印的var使用json_encode(没有传递给JS),那些\'\'仍然保留着!是吗?@user2120569哦,你是对的,那应该是
    htmlspecialchars
    。如果没有额外的引号,它已经是一个js变量了。对于整数,我更喜欢强制转换,但那只是我自己。谢谢。。。不幸的是,它不工作!没有调用javascript函数,是否存在语法错误?如果我设置$link->set_字符集('UTF8');我需要再次使用htmlspecialchars吗?@user2120569只需在浏览器中查看html源代码,并使用html验证程序确保html正常。顺便说一下,
    htmlspecialchars
    是对字符进行编码,比如
    ,这样它们就不会破坏html。无论字符集是什么,在输出到html时都需要它。