用文本框输入替换php变量

时间:2014-10-31 19:04:10

标签: javascript php html onclick

好的我对php,javascript和html感到困惑,不知道该怎么做。在研究互联网时,我发现js是客户端,php是服务器端。当在浏览器上运行php文件时,它会将所有内容转换为html并加载页面。现在让我告诉你们我在做什么。

我有一个php文件,可以从特定网址中获取一些统计信息(在示例中我只显示网址)

<?
$url="www.example.com";
echo "URL = " .$url;
?>

结果URL = www.example.com
上面的代码回显了www.example.com的网址。我在这段代码中添加了一个文本框,我相信是javascript + html

<script>
function myFunction() {
$url=myurl.value;
}
</script>

<input type="text" name="myurl" id="myurl">
<input onclick="myFunction()" type="submit" name="btnurl" id="btnurl" value="Submit">
<br><br>

<?
$url="www.example.com";
echo "URL = " .$url;
?>

此处结果相同。唯一的区别是它在结果上方有一个文本框和按钮 当我在文本框中输入另一个URL并按提交时,它什么也没做,可能是因为页面已经加载。我想将www.example.com的结果替换为在文本框中输入的结果,而不更改.php文件。 .php文件中始终存在默认URL。无论何时在浏览器中打开文件,都会显示默认统计信息...仅当用户输入新网址并点击提交时,统计信息才会更改。

我怎样才能做到这一点?我已经支持这个,因为现在已经超过了几个小时,并且不确定如何完成这项工作。请帮帮我....谢谢。

EDIT 我可以有两个.php文件吗?一个用户输入url并提交另一个用于获取输入的url并回显它?如果有,怎么样?如果我理解这个逻辑,我可以从我正在做的事情开始。

2 个答案:

答案 0 :(得分:3)

我认为你正在尝试用你的js函数做更多的事情,但从语法上来说它是结合js和php。看起来应该是这样的

function myFunction() {
   var url = document.getElementById('myurl').value;
}

虽然这并没有做任何其他事情,但是将文本框的内容分配给变量。

修改

<script>
    function myFunction() {
       document.getElementById('url').innerHTML = document.getElementById('myurl').value;
    }
</script>

<input type="text" name="myurl" id="myurl">
<input onclick="myFunction()" type="submit" name="btnurl" id="btnurl" value="Submit">
<br><br>
<? $url = "www.example.com"; ?>
URL = <span id="url"><?= $url; ?></span>

答案 1 :(得分:1)

natzim是正确的,如果你想将网址写回php文件。如果您使用javascript更改表单的操作,它将提交到其他页面。

//javascript
function myFunction() {
   //this should change the page that loads after submit.
   //If you want to go to a new page that the user enters, leave this code in...
   //If not, remove it
   document.getElementsByTagName("form")[0].action = document.getElementById("myUrl").value;
}

假设您在某处有一个表单标记(您需要提交页面)。此外,如果您使用提交而不是按钮,我不确定此代码是否会运行。如果您使用了按钮,则可以将其附加到上面的代码中以提交表单:

//This would be part of your myFunction if you used a button instead of a submit input
document.getElementsByTagName("form")[0].submit();

根据我的评论 -

这段代码是你的旧php:

<?
$url="www.example.com";
echo "URL = " .$url;
?>

这是我建议的php:

<?php
$url=isset($_POST['myurl']) ? $_POST['myurl'] : 'www.example.com'; 
echo "URL = " .$url; 
?>

这将检查提交给服务器的myurl输入并将$ url的值设置为其值(如果存在),则$ url变量将回显到输入下的页面。

此代码假设您在提交表单时使用的是POST方法而不是GET方法。

**编辑:**

澄清 - 这是您的页面,其中包含我建议的修改。 (请忽略上面的javascript,因为它似乎不需要它):

<form action='www.example.com' method='post'>

<input type="text" name="myurl" id="myurl">
<input type="submit" name="btnurl" id="btnurl" value="Submit">
<br><br>

<?php
$url=isset($_POST['myurl']) ? $_POST['myurl'] : 'www.example.com'; 
echo "URL = " .$url;
?>

</form>