$_GET 接受 space 的值

$_GET to accept values with space

我在这里检查了所有可能的解决方案,不幸的是它行不通。我的代码似乎有什么问题?

我尝试了以下方法。

urldecode (http://php.net/manual/en/function.urldecode.php)

str_replace http://php.net/manual/en/function.str-replace.php)

但运气不好。

我在 isset

中尝试了以下方法

$accounttitle = $_GET['accounttitle'];

urlencode($_GET["accounttitle"])

$accounttitle = str_replace(" ", "", $accounttitle );

这是我的 isset

  if(isset($_GET['accounttitle'])){
    $accounttitle = $_GET['accounttitle'];
  } ?>

这是我的表格

            <div class="box-header with-border">
              <!--<a href="#addnew" data-toggle="modal" class="btn btn-primary btn-sm btn-flat"><i class="fa fa-plus"></i> New</a> --> 
<div class="form-group">              
<?php
$sql = "SELECT accountcode, accounttitle, accounttype FROM earningsamendmentaccount";
$query = sqlsrv_query($conn, $sql, array(), array("Scrollable" => SQLSRV_CURSOR_KEYSET));
?>
<label for="select_account_title" class="col-sm-3 control-label">Select Account Title</label>
<div class="col-sm-9">
<select class="form-control" id="select_account_title" style="text-transform:uppercase" required>
<option value="">PLEASE SELECT OPTION</option>
<?php 

while ($row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC))
{

    echo "<option value=".$row['accounttitle'].">".$row['accounttitle']."</option>";

}
  ?>
</select>
</div>
                  </div>
                </form>

这是我的脚本

$(function(){
  $('#select_account_title').change(function(){
    window.location.href = 'earnings_amendment.php?accounttitle='+$(this).val();
  });
});
</script>

我可以 echo() 但它不适用于 space 的值。

你的问题不在于接收$_GET,而是在于你的外发link。

<select class="form-control" id="select_account_title" style="text-transform:uppercase" required>
  <option value="">PLEASE SELECT OPTION</option>
  <?php while ($row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC)): ?>
    <option value="<?= urlencode($row['accounttitle'])?>"><?= $row['accounttitle'] ?></option>
  <?php endwhile; ?>
</select>

我更喜欢 trim 'trim()' php 函数而不是字符串替换。