2011-01-05 14 views
4

我希望「s.value」全部變成小寫,然後ucwords,但我不知道該怎麼做,因爲它在一個表單內。基本上我想要做這樣的事情:ucwords(strtolower(s.value here));如何添加ucwords和strtolower到這種形式

這是形式:

<form role="search" method="get" id="searchform" action="http://chusmix.com/?s=" onsubmit="if (document.getElementById('s2').value.length > 5) window.location = action + '<php echo $city; ?>++++' + s.value; return false;" > 

感謝

+0

做這一切在JavaScript中,而不是PHP。 PHP是服務器端的。 – webbiedave 2011-01-05 21:53:59

+0

Phpjs.org提供了PHP函數的JavaScript等價物。 Ucwords可以在http://phpjs.org/functions/ucwords:569 – 2011-01-05 21:55:53

+1

找到你可以更清楚一點,你清楚地表明你知道如何在表單元素中嵌入php,並且你知道使用正確的語法ucwords加上strtolower。那麼你究竟在問什麼?它看起來像我正在嘗試使用PHP來格式化一個JS變量,這是不可能的,如果's.value'是在php運行後創建/獲取的。如果是這種情況,你將需要一個JS解決方案。但我不確定是否是這種情況。就像我說的,你需要更清楚。 – 2011-01-05 21:59:16

回答

20
<script type="text/javascript"> 

function ucwords (str) { 
    return (str + '').replace(/^([a-z])|\s+([a-z])/g, function ($1) { 
     return $1.toUpperCase(); 
    }); 
} 

function strtolower (str) { 
    return (str+'').toLowerCase(); 
} 

</script> 

<form role="search" method="get" id="searchform" action="http://chusmix.com/?s=" onsubmit="if (document.getElementById('s2').value.length > 5) window.location = action + '<?php echo $city; ?>++++' + ucwords(strtolower(s.value)); return false;" > 

的JavaScript函數是從PHP.JS

+0

謝謝,我只需要最後一部分,雖然 – lisovaccaro 2011-01-06 03:47:44

0

你想做的事:

$out = ucwords(strtolower($_GET['s.value'])); 

如果s.value是要傳遞

+1

我認爲時期被轉換爲PHP中表單字段名稱的下劃線? – dqhendricks 2011-01-05 21:54:19

+0

他們可能是,我從來沒有用過表格名稱的一段時間,但他說他想要「s.value」。你可能是對的那一個 – Colum 2011-01-05 21:55:45

1
+ <?php echo ucwords(strtolower($s_value)); ?>; 
輸入名稱
0

如果你想這樣做,而他們正在編輯文本框中的文本,然後我不知道你會做什麼,但如果你想讓它小寫再大寫他們AFTER提交表單然後它的簡單。

ucwords(用strtolower($ _ GET [ 'formid']))

3

Javascript字符串有兩個功能:toLowerCase()方法和toUpperCase,你可以用

function toInitCap(input) 
{ 
input = input || ""; 
return input.substring(0,1).toUpperCase() + input.substring(1,str.length).toLowerCase(); 
} 

toInitCap(s.value) 
2

使用它們你可以和我一樣,想要的東西,這是否在同一行,我用:

"your strING".toLowerCase().replace(/(?:(^.{1})|\ [a-z]{1})/g, function(a){return a.toUpperCase();}) 

回報Your String

+1

不是我想要的那麼短,誠然。 – 2012-10-23 10:06:51

0

str.length => input.length

function toInitCap(input) 
{ 
input = input || ""; 
return input.substring(0,1).toUpperCase() + input.substring(1,input.length).toLowerCase(); 
} 

toInitCap(s.value)