как изменить текст ввода в URL-ссылку - PullRequest
0 голосов
/ 31 марта 2020

У меня есть четыре входных текста и одна кнопка отправки введите описание изображения здесь

я хочу, чтобы результаты ввода текста превратились в ссылку, которую я использую в качестве WhatsApp сообщение вот так.

https://wa.me/628123456789?text=Hai%20My%20Name%20Andi

что мне делать? это мой код

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
  <!-- https://wa.me/628123456789?text=textInput1%20textInput2%20textInput3%20textInput4 -->
    <form action="https://wa.me/628123456789?text=textInput1%20textInput2%20textInput3%20textInput4" method="post">
  <input type="text" name="textInput1" id="textInput1" ><br><br>
  <input type="text" name="textInput2" id="textInput2" ><br><br>
  <input type="text" name="textInput3" id="textInput3" ><br><br>
  <input type="text" name="textInput4" id="textInput4" ><br><br>

  <input type="submit" name="submit" value="Submit">
</form>

  <?php 
      //target url --> https://wa.me/628123456789?text=textInput1%20textInput2%20textInput3%20textInput4
  $url = null;
  if(isset($_POST['submit']))
  {
    $textInput1 = $_POST['textInput1'];
    $textInput2 = $_POST['textInput2'];
    $textInput3 = $_POST['textInput3'];
    $textInput4 = $_POST['textInput4'];
    $url = "https://wa.me/628123456789?text=".$textInput1." ".$textInput2." ".$textInput3." ".$textInput4;
  }
   ?>

</body>
</html>

это результат var_dump для моего кода

введите описание изображения здесь

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020

Просто добавьте функцию urlencode () перед содержимым:

 $url = urlencode("https://wa.me/628123456789?text=".$textInput1." ".$textInput2." ".$textInput3." ".$textInput4);
0 голосов
/ 31 марта 2020

Просто установите форму для отправки сообщения, см. Мой код ниже. Добавьте атрибуты имени в поля ввода и нажмите кнопку «Отправить», чтобы вы могли получить их значения через сообщение http. Затем проверьте, была ли опубликована кнопка отправки, используя isset($_POST['submit']). Если установлено, мы присваиваем значения ваших полей ввода переменным, чтобы воссоздать пары пост-ключ / значение URL.

ВАЖНОЕ ПРИМЕЧАНИЕ: Я не охватываю Очистка ваших полей ввода не забудьте прочитать о правильной очистке входных данных в зависимости от того, что вы разрешаете обрабатывать внутренним кодом, чтобы воссоздать ваш URL.

<form action="/https://wa.me/628123456789?text=textInput1%20textInput2%20textInput3%20textInput4" method="post">
  <input type="text" name="textInput1" id="textInput1" ><br><br>
  <input type="text" name="textInput2" id="textInput2" ><br><br>
  <input type="text" name="textInput3" id="textInput3" ><br><br>
  <input type="text" name="textInput4" id="textInput4" ><br><br>

  <input type="submit" name="submit" value="Submit">
</form>

PHP:

//target url --> https://wa.me/628123456789?text=textInput1%20textInput2%20textInput3%20textInput4
$url = null;
if(isset($_POST['submit'])){
  $textInput1 = $_POST['textInput1'];
  $textInput2 = $_POST['textInput2'];
  $textInput3 = $_POST['textInput3'];
  $textInput4 = $_POST['textInput4'];
  $url = "https://wa.me/628123456789?text=".$textInput1." ".$textInput2." ".$textInput3." ".$textInput4;
}

Пример ВЫХОДА . Просто выведите URL на странице html, например:

enter image description here

В вашем html просто отобразите переменную $url. он будет отображаться в вашем коде только тогда, когда он действительно установлен. <?=$url?> или <?php echo $url;?>

ПРИМЕЧАНИЕ: Если вы пытаетесь поместить ссылку в атрибут действия вашей формы перед отправкой страницы, чтобы значения устанавливались в полях ввода являются частью действия формы, вам нужно получить значения перед отправкой страницы, используя JS или JQuery и получить значения входных данных при изменении или что-то в этом роде, а затем создать URL в js / jquery затем установите атрибут формы action, используя JS / Jquery.

РЕДАКТИРОВАТЬ: Я хочу, чтобы результат ввода текста был WhatsApp сообщение, поэтому оно будет размещено в URL-ссылке. Я обновил свой пост

Хорошо, чтобы перенаправить пользователя после заполнения формы и очистки ваших входных данных, установите URL-адрес в функции header() и перенаправьте пользователя на желаемый URL.

* Убедитесь, что вы удалили атрибут action из вашей формы , поскольку вместо этого вы будете перенаправлять, используя функцию php header().

if(isset($_POST['submit'])){
    // I am using filter_var(FILTER_SANITIZE_STRING) in this example. 
    $textInput1 = filter_var ( $_POST['textInput1'], FILTER_SANITIZE_STRING);
    $textInput2 = filter_var ( $_POST['textInput2'], FILTER_SANITIZE_STRING);
    $textInput3 = filter_var ( $_POST['textInput3'], FILTER_SANITIZE_STRING);
    $textInput4 = filter_var ( $_POST['textInput4'], FILTER_SANITIZE_STRING);
    // make sure to test this url by echoing it out before you run the header redirect. 
    $url = urlencode("https://wa.me/628123456789?text=".$textInput1." ".$textInput2." ".$textInput3." ".$textInput4);
    header("Location: $url");
    exit();
}

Использование условного выражения с foreach l oop с заголовком для создания URL-адреса из значений post:

if(isset($_POST['submit'])){
  $url = "https://wa.me/628123456789?text="; // declare the core of your url without the post values  
  $i = 1; // increment 
  $k = 0; // key value for $inputs
  $userinput = ''; // empty variable to hold user inputs for encoding
  $num = count($_POST) - 1;  // count the number of items in the array to properly format spaces in url string subtract one for submit button 
  foreach($_POST as $value){ // run a foreach loop on the $_POST
    if($value !== "Submit"){ // we remove the submit post value from our array by omitting it using does not equal    
      $inputs[] = filter_var ( $value, FILTER_SANITIZE_STRING); // create a new array and push values into it
      if($i < $num){ // all but last iterations will produce the space
        $url .= $input[$k]." ";
      }else{ // last iteration will not have a space
        $url .= $input[$k]; 
      }
    }    
  }  
  $url .= urlencode($userinput);
  echo $url; // for testing purposes to make sure the string is populating the input values as you have entered them delete this line after testing. 
  //header("Location: $url"); <-- Uncomment this line to redirect
  //exit(); <-- uncomment exit() if you uncomment header() to close after redirect to make sure code stops on this page. 
}
...