我有这个 research.php 文件,它应该显示数据库表的内容,从javascript表单中获取查询信息。
我在javascript中使用了表单并禁用了回车键,因此只有按下按钮即可提交值。应使用表单中组件的值来进行查询。我可以将值传递给同一文件中的php变量吗?
<!DOCTYPE html>
<html>
<head>
<!--
Implemented by Argese Alessandro and Rosso Kevin
The slider is taken from "https://dhtmlx.com/docs/products/dhtmlxSlider/samples/index.html"
Download slider: "https://dhtmlx.com/docs/products/dhtmlxSlider/"
-->
<title>Ricerca diplomati</title>
(...) <!--slider things-->
<style>
(...)
</style>
<script>
var mySlider;
function doOnLoad(){ //slider load
(...)
};
function doOnUnload(){ //slider unload
(...)
};
window.addEventListener('keydown', function (event) {
// if the keyCode is 16 ( shift key was pressed )
if (event.keyCode == 13) {
// prevent default behaviour
event.preventDefault();
return false;
}
});
function interact(form){
(...) //here the value is put in js variables, for a test
});
</script>
</head>
<body onload="doOnLoad();" onunload="doOnUnload();">
<form id="filters" name="filters" action="#" enctype="text/plain">
<table cellspacing="0" cellpadding="0" border="0" class="filters_table">
<tr>
<td>Specializzazione:</td>
<td>
<select name="specialization" class="table">
<option selected value="0">Tutte le specializzazioni</option>
<option>Chimica</option>
<option>Elettrotecnica</option>
<option>Informatica</option>
<option>Meccanica</option>
</select>
</td>
<td></td>
<td></td>
<td>Valutazione finale:</td>
<td><div id="sliderObj"></div></td>
<td><span id="sliderLink"></span><span class="minussign">-</span><span id="sliderLink2"></span></td>
<td></td>
<td></td>
<td>Città:</td>
<td><input type="text" name="city" size="35" maxlength="40" value=""></td>
<td></td>
<td><input type="button" onclick="interact(filters)" value="search" style="background: url(res/magnifying-glass-16x.png); background-repeat: no-repeat; background-position:center; background-color: #0c84e4;width:24px; height:24px;"></td>
</tr>
</table>
</form>
<?php
function viewTable(){
echo "Here the table will be shown";
}
?>
</body>
</html>
在此代码中,按钮单击只需调用 interact 函数,该函数显示带有变量值的警报窗口。
我尝试使用ajax,但据我所知,它会打开一个新文件。 我也看到了有人建议使用cookie的解决方案,但是这个解决方案真的让我感到厌恶。
我找到的最有用的事情是: How do i store select value into a php variable, 但POST方法刷新页面,滑块粉碎。
答案 0 :(得分:0)
我认为你对php(服务器端)和js(客户端)之间的整个工作流程有点困惑。或者我可能错了你的问题。但这里有一个关于如何处理这个问题的提示。
AJAX就是这样。你可以使用纯javascript或像jquery这样的插件来实现。在php方面,你甚至可以保留一个小的,单独的脚本来处理这个请求,运行查询并生成结果。使用“onSubmit”表单来调用ajax。
答案 1 :(得分:0)
如果你想将一个变量从JS传递到PHP你将要使用AJAX,它允许你从运行PHP脚本的服务器发送和接收信息。
您的Javascript:
var infobeingsent = "test";
$.ajax({
type: "POST",
url: 'YOURPHPFILE.php',
data: { testVAR : infobeingsent },
success: function(data)
{
alert("data has been sent");
var recievedvar = data;
}
});
你的php文件:
if(isset($_POST['testVAR']))
{
$recievedvar = $_POST['testVAR'];
echo "Hey, ive recieved your request";
}
使用AJAX意味着您的浏览器永远不必直接与php文件联系,并且不会从最终用户的角度中断