$ partOne = strtok($ filename,'。');我有一个文本框,假设是网址:
<label>URL:</label>
<input name="url" type="text" id="url" size="20" />
当我想点击那里输入时,我希望得到该网址的姓氏显示在第二个文本框中:
<label>NAME:</label>
<input name="name" type="text" id="name" size="20" />
我尝试了什么:
<script type="text/javascript">
function myFunction() {
var url = document.getElementById('url').value;
var name = <?php $path = parse_url($_GET['url'], PHP_URL_PATH); $filename = basename($path);$partOne = strtok($filename, '.'); echo $partOne; ?>;
document.getElementById('name').value = name;
}
</script>
并按下按钮进行测试:
<button onclick="myFunction()">Test Button!</button>
但看起来java脚本有些不对劲,怀疑它是java脚本中的php部分。 我如何归档我的目的(最终的解决方案是没有点击测试按钮;用户点击第二个框,他们可以编辑一个文本)。
答案 0 :(得分:1)
此时你需要一个ajax调用。您期望的行为无法通过上述方式完成。一旦页面显示在浏览器上,就不再有PHP
,只有HTML和JS。这是因为PHP是一种服务器端语言。
您可以根据需要使用两种方法使表单正常工作,使用Javascript进行Url处理步骤,或者在场景后面从服务器获取Ajax结果。
<label>URL:</label>
<input name="url" type="text" id="url" size="20" />
<label>NAME:</label>
<input name="name" type="text" id="name" size="20" />
<script>
$("#url").change(function()
{
$.ajax({
url:"parseurl.php?key="+$("#url").val(),
}).done(function(data)
{
$("#name").val(data);
});
});
</script>
其中parseurl.php
是
<?php
$path = parse_url($_GET['key'], PHP_URL_PATH);
$filename = basename($path);$partOne = strtok($filename, '.');
echo $partOne;
?>
答案 1 :(得分:1)
我试过这个:
$('input[name=url]').focusout(function(){
var url = $('input[name=url]').val();
if(url.indexOf('/') != -1) // If there is a slash in the url.. 'google.at/test.html'
{
var urlarray = url.split('/'); // Split the url into an array..
var urlerg = urlarray[urlarray.length-1]; // Take the last item of the array
$('#dlist').append('<option value="'+ urlerg+ '">'+urlerg +'</option>');
}
else
{
$('#dlist').append('<option value="'+url+'">'+url+'</option>');
}
});
这是输入/数据列表项:
<label>URL:</label>
<input name="url" type="text" id="url" size="20" />
<label>NAME:</label>
<input name="name" type="text" list="dlist" id="name" size="20" />
<datalist id="dlist">
</datalist>
所以当我在URL-Input“www.google.at/test.html”中写道时,我会在NAME-Input中输入“test.html”。如果我只写了一个没有“/”的文件名,我只能得到文件名。
问候