所以,我是javascript / jquery的新手,但是我用PHP玩了很长时间。我知道如何使用PHP从输入中获取数据,这非常简单,但是当尝试使用jQuery执行相同操作时,如何做到这一点只是飞得很快。
现在我有这个脚本:
<script type="text/javascript">
function onSubmit( form ){
var data = JSON.stringify( $(form).serializeArray() );
console.log( data );
}
</script>
这种形式:
<form onsubmit='return onSubmit(this)'>
<input type="date"/><br/>
<input type="date"/><br/>
<input type="submit" name=""/>
</form>
我看到它记录了.json文件就好了([{"name":"from","value":"1994-01-01"},{"name":"to","value":"1994-02-02"}]
)。我的猜测是它几乎将.json发送到.php文件,然后执行$ _POST,但我不知道如何从这里继续或者这样做。我不知道ajax是否有必要,如果不是,没有它就该怎么做(我在这里发现的一切都是使用ajax)。
答案 0 :(得分:2)
您可以使用标准网址编码表示法将表单数据作为文本字符串发送,也可以使用JSON
作为jQuery.serialize()
字符串发送表单数据。
<form id="set-date-form">
<input name="from" type="date"/><br/>
<input name="to" type="date"/><br/>
<input type="submit" id="set-date"/>
</form>
jQuery
<script>
$('#set-date').on('click', function (e) {
e.preventDefault();
var data = $('#set-date-form').serialize();
$.post('somephpfile.php', data, function (response) {
// response is the data echoed from php
var result = JSON.parse(response) // assuming that php echoed ['success' => true/false];
if (result.success == true) {
alert("the values were sent to db successfully");
}else {
alert("the values were not sent to db successfully");
}
})
})
</script>
然后在您的PHP
文件中
<?php
$from = $_POST['from'];
$to = $_POST['to'];
// here you can update the database with this values
// after updating db or insert
// check if the query was successful
// if query was successful [echo json_encode(['success' => true]);] this value will be sent to javascript as a response
// if query was not successful [echo json_encode(['success' => false]);] this value will be sent to javascript as a response
答案 1 :(得分:0)
PHP被视为服务器端。
如果您想将数据发送到&#34; PHP&#34;您需要请求服务器(如果您不想更改当前页面或使用数据调用新URL,请通过Ajax)。
我知道如何使用PHP
从输入中获取数据
这是一个非常错误的陈述,因为PHP无法从输入中获取数据,因为它是服务器端。 浏览器将数据发送给调用服务器的PHP。
答案 2 :(得分:0)
相反,定义一条路线将您的输入数据发布到您的php文件中,然后通过表单您可以简单地方法=&#39; POST&#39;而不是使用ajax发送您的数据。
答案 3 :(得分:0)
您也可以使用XML HTTP请求。
这是一个例子。
var http = new XMLHttpRequest();
var url = "get_data.php";
var params = "lorem=ipsum&name=binny";
http.open("POST", url, true);
//Send the proper header information along with the request
http.setRequestHeader("Content-type ", "application/x-www-form-urlencoded");
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
http.send(params);
这取自这里的答案。