Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换使用GET(PHP)的表单中的字符串_Php - Fatal编程技术网

替换使用GET(PHP)的表单中的字符串

替换使用GET(PHP)的表单中的字符串,php,Php,我想知道如何在PHP中修改使用GET函数发送的字符串 这是我的密码: <form action= "lookup.php" method = "get"> <div class="input-group"> <!--Enter Name with # afterwards--> <input type ="text" class="form-control" name="name"/> <span class=

我想知道如何在PHP中修改使用GET函数发送的字符串

这是我的密码:

<form action= "lookup.php" method = "get">
  <div class="input-group">

    <!--Enter Name with # afterwards-->
    <input type ="text" class="form-control" name="name"/>

    <span class="input-group-btn">
      <select name="region" class="form-control" style="width: 80px">
        <option value = "us">United States</option>
        <option value = "eu">Europe</option>
        <option value = "cn">China</option>
        <option value = "kr">Korea</option>
      </select>
    </span>

    <span class="input-group-btn">
      <button type="submit" class="btn btn-royal"></button>
    </span>
  </div>    
</form>

美国
欧洲
中国
韩国
基本上,用户会键入他们的姓名和数字,例如John#1,从而使URL:

lookup.php?name=John%231®ion=us

但是我想把#符号变成一个破折号,所以URL变成:

lookup.php?name=John-1®ion=us


我该怎么做?有可能吗?谢谢

用户输入输入时,可以替换#值。只需添加一个
oninput
回调函数,并将#替换为-。下面给出了一个使用JQuery的示例

<input type ="text" oninput="replaceHash()" class="form-control" name="name" id="name"/>

<script>
function replaceHash(){
    var name=$('#name').val();
    name=name.replace("#","-");
    $('#name').val(name);
}
</script>

函数replaceHash(){
var name=$('#name').val();
名称=名称。替换(“#”)、“-”;
$('#name').val(name);
}

(我使用了JQuery而不是纯JavaScript。使用纯JavaScript也可以很容易地做到这一点)

上面的答案很好,但我认为最好替换提交时的#字符(
onsubmit
callback),因为这样对用户来说比较容易混淆。(我就是这么做的)

您可以在收到请求后用PHP替换

或者,在发送请求之前——通过JavaScript

假设您的表单将具有name属性:“myform”<代码>(您可以更改任何适合您的选择器)。然后收听
onsubmit
事件

document.myform.onsubmit = function() {
    var name = document.querySelector('input[name="name"]');
    var replace = name.value.replace('#', '-');
    name.value = replace;
}
或者使用jQuery

$('form[name="myform"]').on('submit', function(){
    var name = $('input[name="name"]').val();
    var replace = name.replace('#', '-');
    $('input[name="name"]').val(replace);  
});

请使用以下代码段:

<!DOCTYPE html>
<html>
<head>
    <title>frmexample</title>
    <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
     <script type="text/javascript">
     function Redirect() {
                var  frm_name=$("#frm_name").val();
                frm_name=frm_name.replace("#","-");
                var region=$("#region").val();
                var url="lookup.php?name="+frm_name+"&region="+region;
               window.location=url;
            }
     </script>
</head>
<body>
<form id="sub_frm"  method = "get">
  <div class="input-group">

    <!--Enter Name with # afterwards-->
    <input type ="text" class="form-control" id="frm_name" name="name"/>

    <span class="input-group-btn">
      <select name="region" id="region" class="form-control" style="width: 80px">
        <option value = "us">United States</option>
        <option value = "eu">Europe</option>
        <option value = "cn">China</option>
        <option value = "kr">Korea</option>
      </select>
    </span>

    <span class="input-group-btn">
      <button type="button" class="btn btn-royal" onclick="Redirect();">submit</button>
    </span>
  </div>    
</form>
</body>
</html>

frmexample
函数重定向(){
var frm_name=$(“#frm_name”).val();
frm#U名称=frm#U名称。替换(“#”)、“-”;
var region=$(“#region”).val();
var url=“lookup.php?name=“+frm_name+”®ion=“+region;
window.location=url;
}
美国
欧洲
中国
韩国
提交
希望这能解决你的问题。谢谢。

您可以使用javascript在表单的“提交”事件上“添加事件侦听器”,以“替换”元素“name”值中的“-”。
<!DOCTYPE html>
<html>
<head>
    <title>frmexample</title>
    <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
     <script type="text/javascript">
     function Redirect() {
                var  frm_name=$("#frm_name").val();
                frm_name=frm_name.replace("#","-");
                var region=$("#region").val();
                var url="lookup.php?name="+frm_name+"&region="+region;
               window.location=url;
            }
     </script>
</head>
<body>
<form id="sub_frm"  method = "get">
  <div class="input-group">

    <!--Enter Name with # afterwards-->
    <input type ="text" class="form-control" id="frm_name" name="name"/>

    <span class="input-group-btn">
      <select name="region" id="region" class="form-control" style="width: 80px">
        <option value = "us">United States</option>
        <option value = "eu">Europe</option>
        <option value = "cn">China</option>
        <option value = "kr">Korea</option>
      </select>
    </span>

    <span class="input-group-btn">
      <button type="button" class="btn btn-royal" onclick="Redirect();">submit</button>
    </span>
  </div>    
</form>
</body>
</html>