我有一个带按钮的表格。当用户点击它时,有一个用javascript函数编写的onclick事件。同时,我想将表单值记录到服务器上的文本文件中。这是由一段PHP代码完成的。这是我的困境:
如果类型设置为“Button”,则onclick事件可以正常工作,但表单值不会被带到php代码中。如果类型设置为“提交”,则php代码运行良好,但onclick事件已被超越。
我的问题是:有一个简单的解决方案可以解决吗?谢谢。
更新:谢谢大家的帮助。到目前为止,我还没有找到解决方案。问题是,一旦表单的提交功能进入,iframe内容将不会加载。以下是关键代码。
/**** index.php: ****/
<form id="form1" name= "form1" method="post" >
<center>
<table>
<tr>
<td><b><p id="zip_code">Enter Zip Code:</p></b></td>
<td><input id="zipcode" name="zipcode" placeholder="12345" type="text" /></td>
</tr>
</table>
</center>
<input value="Check Inventory" onclick="getwebURL()" type="button" />
</form>
/** the onclick event will update the iframe contents **/
<iframe id="myFrame2" src="" name="myFrame2" height="1026" width="100%"></iframe>
/** php code that will record user inputs with time stamp **/
<?php
ini_set("auto_detect_line_endings", true);
// Get the zip code they entered in the form
$zipcode = $_POST['zipcode'];
// We want the file to be a text file right?
$ex = "record.txt";
// Try to open a file named $file$ex (johndoe.txt for example)
// Because this file doesn't exist yet the server creates it
$write = fopen("$ex","a");
// Now open the file up again but this time save the email in it
$savestring = $zipcode . "," . date("c") . "," . "\n";
fwrite($write,$savestring);
// MAKE SURE you close the file!!!
fclose($write);
?>
/**** Javascript that has getwebURL() function ****/
function getwebURL()
{
document.getElementById('myFrame2').src='http://www.example.com?zipCode='+document.getElementById('zipcode').value;
}
Update2:看完之后,似乎我最好的选择是将它保持为TYPE“Button”并在onclick事件中,使用AJAX调用php代码。任何人都有这样的例子,特别是如何传递参数。感谢。
Update3:使用AJAX调用php代码并解决了问题。谢谢大家的帮助。
答案 0 :(得分:0)
尝试将类型设为button
然后在您的函数中添加代码打击
$('#myid').submit();
答案 1 :(得分:0)
在提交按钮上收听提交事件而不是点击事件。
$("#submitbutton").submit(function(){
$.post("ajax/writestufftofile.php", data ...); // Send data to php script to write to file
});
上述代码之类的内容将侦听提交事件,当它被触发时,它会向网络服务器发送ajax调用并仍然提交表单。
答案 2 :(得分:0)
$('#button').click(function() {
$('#formId').submit();
});
答案 3 :(得分:0)
请勿使用onclick
事件,而应使用表单的onsubmit
事件。
<form onsubmit="return my_js_function();">
<!-- your form -->
</form>
提交表单时会触发onsubmit
事件。在执行<{1}}处理程序之后,表单正在提交。您的JavaScript代码将会运行,并且您的表单将被发送。
通过在函数中返回onsubmit
,您可以中止提交。如果您希望提交表单,我建议您返回false
,以确保。
好的,你正在做以下事情:
提交表单时,需要刷新页面。 PHP在服务器端运行,因此您需要运行PHP的新请求(除非您使用AJAX,但这是另一个故事)。当页面再次加密时,您必须更改iframe的URL。你根本不需要JavaScript。
true