繁体   English   中英

用PHP动态设置输入值

[英]set input value dynamically with php

我有用于URL缩短的PHP函数(如goo.gl或bit.ly),它返回带有echo的缩短的链接。 我想将返回的链接放入输入而无需刷新页面(变量在PHP中)。

我知道这有点不可理解:

  1. 用户在输入中粘贴URL
  2. PHP函数将其缩短并返回缩短的URL
  3. 缩短的URL显示在输入下(我想在输入中显示它而不刷新)

我的代码:

<?php

function shortUrl($url)
{

    $id = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 6);
    $ip = $_SERVER['REMOTE_ADDR'];
    $date = date("Y-m-d");
    $hour = date("H:i:s");
    $user = $_SESSION["user"];


    require_once 'db.php';

    $conn = new mysqli($servername, $username, $password, $dbname);

    if ($conn->connect_error) 
    {
        die("Database error. (1)");
        exit();
        //die($conn->connect_error);
    } 

    $sql = "INSERT INTO links (id, ip, user, link, date, hour) VALUES ('".$id."', '".$ip."', '".$user."', '".$url."', '".$date."', '".$hour."')";

    if ($conn->query($sql) === TRUE) 
    {
        echo 'http://blabla.ru/'.$id;
    }
    else 
    {
        echo 'Connection error. (2)';   
        //echo $conn->error;    
    }

    $conn->close();
}

Ajax对此非常适合。 假设您有输入,用户就会粘贴到其中-您正在监听该输入的值更改。 一旦发生这种情况,您就可以获取该输入的值并将其发布到http://example.com/your-shortern.php或以链接为参数的内容。

一旦运行,它将通过该回显返回,您的ajax成功函数将获取该数据并将其设置为输入中的值。

https://jsfiddle.net/rzan9hdr/3/是一个示例(SUPER SIMPLE)

对于以后再来的人,这里是使用按钮单击来触发ajax的最终解决方案https://jsfiddle.net/rzan9hdr/5/

如果要在页面上回显新的URL,则需要刷新页面。

或者,您可以允许用户将URL输入到输入字段或任何其他字段中,然后使用ajax调用将URL发送到服务器,让服务器确定新URL并将其发送回客户端。 由于您正在更改服务器的状态,因此请使用POST请求而不是GET请求(请参阅https://en.wikipedia.org/wiki/Idempotence )。 也许像下面这样...

$('#input1).change(function(){
   $.POST( "yourserver.php", {oldURL:$( "'#input1t" ).val()}, function( newURL ) {
      $( "'#input1t" ).val(newURL);  //Might need to do something to prevent another change event
   });
});

yourserver.php

<?php
shortUrl($_POST['oldURL'])

function shortUrl($url)
{
  //Your posted code
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM