[英]set input value dynamically with php
我有用于URL缩短的PHP函数(如goo.gl或bit.ly),它返回带有echo的缩短的链接。 我想将返回的链接放入输入而无需刷新页面(变量在PHP中)。
我知道这有点不可理解:
我的代码:
<?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.