JavaScript — HTML & amp; Введите номер телефона и позвоните

Я написал код, но он не работает.

Код:

<?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>
';

0

Решение

В PHP переменные в строках разрешены только в двойные кавычки. Измените одинарные кавычки на двойные, чтобы сделать $number работать в строке.

Увидеть этот ТАК пост Больше подробностей.

Поэтому ваш код должен выглядеть так:

<?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.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]