HTML & PHP - 输入电话号码,然后拨打

HTML & PHP - Type a telephone number, and call it

我写了一个代码,但是不行

代码:

<?php
$number = $_GET["tel"];
echo '<form action="/" method="get">
         <a>Enter the phone number, what you want to call</a>
         <input type="tel" name="tel"/>
         <input type="submit" onclick="call()" value="Call"/>
      </form>
      <script>
          function call() {
              window.open("tel:$number");
          }
      </script>
';

在PHP中,字符串中的变量只允许在双引号中。将单引号更改为双引号以使 $number 在字符串中起作用。

有关详细信息,请参阅 this SO post

因此,您的代码应如下所示:

<?php
    $number = $_GET["tel"];
    echo "<form action='/' method='get'>
                <a>Enter the phone number, what you want to call</a>
                <input type='tel' name='tel' />
                <input type='submit' onclick='call()' value='Call' />
            </form>
            <script>
                function call() {
                    window.open('tel:$number');
                }
            </script>
        ";
?>

但是这段代码很奇怪。流程如下:

  1. 获取$_GET变量tel(假设表格已经发送)
  2. echo出表格
  3. 表单提交时,$_GET["tel"]中的数字被访问,不是表单中的数字
  4. 然后,表单被提交,但这不起作用,因为 window.open() 已经发生

这是一个没有 PHP 的替代解决方案(并且没有实际的表单发送):

<form action='/' method='get'>
<a>Enter the phone number, what you want to call</a>
    <input type='tel' name='tel' />
    <input type='submit' onclick='call();return false;' value='Call' />
</form>
<script>
    function call() {
        var number = document.querySelector("input[name=tel]").value;
        window.open('tel:' + number);
    }
</script>

查看它在 JSFiddle.net 的工作情况。