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

时间:2015-12-27 13:27:09

标签: javascript php html phone-number phone-call

我写了一段代码,但它不起作用。

代码:

<?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 个答案:

答案 0 :(得分:2)

在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()已经发生
  5. 这是一个没有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处查看它。