从文本框中获取值并传递到下一个文本框作为建议

时间:2014-09-26 10:58:05

标签: javascript php textbox

$ 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部分。 我如何归档我的目的(最终的解决方案是没有点击测试按钮;用户点击第二个框,他们可以编辑一个文本)。

2 个答案:

答案 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”。如果我只写了一个没有“/”的文件名,我只能得到文件名。

FIDDLE LINK TRY THE DEMO

问候