我试图通过php将存储在变量中的字符串传递给mysql表。
目前我正在使用<input>
类型hidden
,我将我想要的变量指定为其值,并通过form
提交发布。
它有效,但很难看。
我知道有$.post
和$.ajax
,但我似乎无法弄清楚如何在js端和php端使用它们。我在网上找了他们,有很多这类问题,但没有一个对我有用(可能是因为我缺少知识)
我该怎么办?
答案 0 :(得分:1)
这是一个非常基本的例子。我们从HTML页面上的表单开始。单击此按钮时,我们将激活javascript函数。
<html>
<form>
<input type="email" id="email-field" />
<input id="submitButton" type="submit" value="Submit" />
</form>
</html>
现在,这是由于点击按钮而激活的javascript功能。在内部,我们提取可能已在输入字段中填写的任何信息,其ID为&#34; email-field&#34;,然后通过ajax将其发送到位于服务器上的php文件。
$('#submitButton').click(function() {
var email = $('#email-field').val();
$.ajax({
type: 'POST',
url: './yourphpfilename.php',
data: {
email: email
}
}).done(function(data) {
console.log(data) // Will send you the result that is echoed in the PHP file
})
})
只要您将ajax请求中的正确url放入PHP文件中,就可以轻松地接收发送的数据,
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$email = $_POST['email'];
echo 'I have received your request.';
}
要发回数据,我在这里使用echo命令。
尝试阅读PHP中$ _POST变量的一些文档。请注意我打电话给[&#39;电子邮件&#39;]。括号内的标识符直接与js文件中数据对象内的键相关联。例如,假设我们决定在js文件中将我们的电子邮件密钥命名为不同的内容。
data: {
useremail: email
}
然后你就可以像这样改变PHP代码,
$email = $_POST['useremail'];
这对我来说非常困惑,如果你不知道它是如何运作的,有时甚至很难提出质量问题。但是在将来,我会尝试发布一些显示您尝试过该问题的代码。
答案 1 :(得分:1)
您需要做几件事:
form
标记,您需要阻止它提交,如下所示:
$("#myformid").submit(function(event) {
//Do something
event.preventDefault();
});
如果您的form
不再提交,那么您就在正确的轨道上。
您需要使用$.ajax
发送请求,如下所示:
$("#myformid").submit(function(event) {
//Here I assume that all variables have been properly initialized
$.ajax({
url: "yoururl",
method: "POST",
data: yourdata, //yourdata should contain the things you intend to send to the server
}).done(function(response) {
//callback
});
event.preventDefault();
});
您需要一个能够正确处理yoururl
发送的POST请求的PHP代码。这是您在PHP中检查请求方法是否为POST的方法:
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
//It is a POST request
} else {
//It is not a POST request
}