HTML输入表单-添加Javascript和PHP函数
这个问题会让你想:D.我有一个HTML输入表单,因为它似乎有太多的函数。其中有一个功能,当按下enter键时,它会提交数据。另一个功能是检查是否输入了某些关键字,以便将用户重定向到其他URL。这一切都非常适合来自stack overflov的人。这是我的密码:HTML输入表单-添加Javascript和PHP函数,php,javascript,html,forms,Php,Javascript,Html,Forms,这个问题会让你想:D.我有一个HTML输入表单,因为它似乎有太多的函数。其中有一个功能,当按下enter键时,它会提交数据。另一个功能是检查是否输入了某些关键字,以便将用户重定向到其他URL。这一切都非常适合来自stack overflov的人。这是我的密码: <script type="text/javascript"> <!-- function enter(e){ if(e.keyCode == 13) { Login();
<script type="text/javascript">
<!--
function enter(e){
if(e.keyCode == 13)
{
Login();
return false;
}
}
//-->
</script>
<script type="text/JavaScript">
<!--
function Login(){
var keyword=document.getElementById("address").value;
var done=0;
keyword=keyword.toLowerCase();
keyword=keyword.split(' ').join('');
if (keyword=="example,example") { window.location="http://www.example.com"; done=1;}
if (keyword=="example1") { window.location="http://www.example1.com"; done=1;}
if (keyword=="example2") { window.location="http://www.example2"; done=1;}
if (done==0) { doSomethingElse(); }
}
//-->
</script>
<form name="enterkeyword" action="none">
<input name="keyword" id="address" type="text" onkeypress="return enter(event);"/>
<div class="buttons">
<button type="button" onclick="Login()">Submit</button>
</div>
</form>
提交
这就是问题所在。我需要找到一种方法将每个提交的查询保存到excel或.CSV。我找到了一种使用PHP将输入数据保存到.CSV文件的方法。我对它进行了测试,效果良好。但当我试图用输入表单上的现有函数实现它时,它会把一切都搞糟。这是“查询保存功能”的代码,这是HTML部分:
<html>
<head>
<title>My Form</title>
</head>
<body>
<form action="save.php" method="post">
<p>
What is your favorite movie?<br>
<input type="text" name="formMovie" maxlength="50" value="<?=$varMovie;?>" />
</p>
<p>
What is your name?<br>
<input type="text" name="formName" maxlength="50" value="<?=$varName;?>" />
</p>
<input type="submit" name="formSubmit" value="Submit" />
</form>
</body>
</html>
我的表格
你最喜欢的电影是什么?
完成更新
嘿,再次,我分离了功能,使代码可读性和可维护性
Index.html
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="styles/index.css"/>
</head>
<body>
<input type="text" id="txt" value="example1"/><br/>
<input type="button" id="btn" value="doQuery()"/>
<script src="scripts/index.js"></script>
</body>
</html>
exportQuery.php
<?php
// Get the request
$query = $_GET['query'];
if( !empty( $query ) )
{
writeToCSV( $query );
notifyReady( $query );
}
function writeToCSV( $query ) {
$fs = fopen( "storedQueries.csv", "a" );
fwrite( $fs, $query . "\n" );
fclose( $fs );
}
function notifyReady( $query ) {
// print back as plain javascript
print <<<ENDLINE
onPhpReady( '$query' )
ENDLINE;
// The ENDLINE ^ can't use spaces or it will give a parse error.
}
?>
您需要将var keyword
保存到*.csv
中,然后将用户重定向到不同的网站/页面?我需要将每个输入保存到.csv中,并仅在输入特定关键字时重定向,否则此函数被调用:doSomethingElse();我检查了所有浏览器,fkors关键字重定向在所有浏览器中都正常工作,但IET除外。不可靠的processflow可能会导致在登录中设置URL之前执行PHP+GoTour。现在应该可以了。
function processValue() {
var inputText = document.getElementById("txt").value.toLowerCase().split(' ').join('');
// Export query
exportQuery( inputText );
}
function exportQuery( query ) {
var script = document.createElement("SCRIPT");
script.setAttribute( 'type', 'text/javascript' );
script.setAttribute( 'src', 'exportQuery.php?query=' + query );
document.head.appendChild( script );
}
var urlMapper = {
"example,example": "http://www.example.com",
"example1": "http://www.example1.com",
"example2": "http://www.example2.com"
}
/**
* Should be called when the PHP has finished execution
*/
function onPhpReady( query ) {
var url = urlMapper[ query ];
if( url !== undefined ) {
goToUrl( url );
} else {
codeAddress();
}
}
function goToUrl( url ) {
window.location = url;
}
function codeAddress() {
alert( "Access Denied" );
}
( function() {
// Selfexecuting code.
function addButtonClickListener() {
var btn = document.getElementById("btn");
btn.addEventListener( "click", processValue, false );
}
function processKeyPress( e ) {
if( e.keyCode == 13 ) {
processValue();
}
}
function addInputKeyPressListener() {
var input = document.getElementById("txt");
input.addEventListener( "keypress", processKeyPress, false );
}
addButtonClickListener();
addInputKeyPressListener();
}() );
<?php
// Get the request
$query = $_GET['query'];
if( !empty( $query ) )
{
writeToCSV( $query );
notifyReady( $query );
}
function writeToCSV( $query ) {
$fs = fopen( "storedQueries.csv", "a" );
fwrite( $fs, $query . "\n" );
fclose( $fs );
}
function notifyReady( $query ) {
// print back as plain javascript
print <<<ENDLINE
onPhpReady( '$query' )
ENDLINE;
// The ENDLINE ^ can't use spaces or it will give a parse error.
}
?>