JavaScript将PHP中的字符串和整数传递给函数

时间:2014-09-28 17:22:36

标签: javascript php ajax

我试图将一个字符串和一个整数传递给同一个函数,但我有引号问题。我发现错误在echo $q->info部分,我必须在此代码上使用双引号。

有人可以帮助我写这个$q->info,但要获得真正的价值而不是$q->info吗?

到目前为止,我的代码是

<td><a href="javascript:add(<?php echo $q->info?>,<?php echo $q->id?>)">Edit</a></td>

和js函数

function add(var,var2)

有人可以帮我这个吗?

3 个答案:

答案 0 :(得分:1)

你有一个PHP变量。要将其转换为JavaScript文字的字符串表示形式,请使用json_encode。要安全地插入HTML属性值,请使用htmlspecialchars

<td><a href="javascript:add(<?php echo htmlspecialchars(json_encode($q->info)); ?>,<?php echo htmlspecialchars(json_encode($q->id)); ?>)">Edit</a></td>

也就是说,最好编写代码以遵循Progressive EnhancementUnobtrusive JavaScript的原则。

<td>
    <form action="edit" method="post">
        <input type="hidden" name="info" value="<?php echo htmlspecialchars($q->info); ?>">
        <input type="hidden" name="id" value="<?php echo htmlspecialchars($q->id); ?>">
        <input type="submit" value="edit">
    </form>
</td>

然后像:

document.querySelector('form').addEventListener("submit", function (evt) {
    evt.preventDefault();
    add(this.elements.info.value, this.elements.id.value);
});

答案 1 :(得分:0)

你需要引用字符串。

<td><a href="javascript:add('<?php echo $q->info?>',<?php echo $q->id?>)">Edit</a></td>

此外,var是无效的变量/参数名称(标识符)。

答案 2 :(得分:0)

这是您问题的答案:用Preg替换字符串的一部分?

echo substr($string, 0, strpos($string, "-DELETED"));