PHP 在 URL 字符串中连接变量


PHP Concatenate Variable in URL string

<td><input type="submit" onClick="window.location.href='https://www.'.$myVariable.'.test.com'" value="Click!"></td>

我有一个按钮应该转到 8 个可能的 url 中的 1 个 - 我有获取变量的逻辑,但我似乎在这里遇到了问题。我收到一条错误消息,说

Unresolved Variable: $myVariable

这是因为我在 HTML 表中吗?

我什至尝试在琴弦之间使用.<?=$myVariable?>.,但仍然不起作用。我错过了一些明显的东西吗?

只需在一个字符串中输出 php 变量:

<td><input type="submit" onClick="window.location.href='https://www.<?php=$myVariable; ?>.test.com'" value="Click!"></td>

如果未启用短标记,请使用<?=$myVariable?><?php=$myVariable?>

<td><input type="submit" onClick="window.location.href='https://www.<?=$myVariable?>.test.com' value="Click!"></td>

另一种选择是使用 heredoc(我最喜欢的(来包含htmlphp代码,这样您就不必担心quotesconcatenation即:

<?php
echo <<< LOL
<td><input type="submit" onClick="window.location.href='https://www.{$myVariable}.test.com'" value="Click!"></td>
LOL;

试试这个:

<td><input type="submit" onClick="window.location.href=<?php echo "'https://www.".$myVariable.".test.com'"; ?>" value="Click!"></td>

只需对变量字符串进行 php echo 即可。

由于连接,您变得复杂,所以我将拆分它们。

<?php
    $fullUrl = "https://www.{$myVariable}.test.com"; // Repeat for every variable
    $locationHref = "window.location.href='{$fullUrl};'";
?>
<td>
    <input type="submit" onClick="<?=$locationHref; ?>" value="Click!" />
</td>

作为旁注,如果你想停止表单的正常提交并实际使用 AJAX 进行一些处理,你需要捕获<form>元素的onsubmit(return false该属性,否则表单无论如何都会提交(。

现在,您

正在使用Javascript进行重定向,阻止表单提交(严格来说,您正在重定向并提交,但不等待它完成,这可能会导致问题(。