通过Ajaxrequest.open从Javascript获取变量到PHP文件
Getting varriable from Javascript to PHP file via Ajaxrequest.open
我有以下javascript函数
function ajax_runs3(value){
var ajaxRequest; // The variable that makes Ajax possible!
try{
ajaxRequest = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
document.myForm.time.value = ajaxRequest.responseText;
}
}
var runs3= value;
ajaxRequest.open("POST","runs3.php"+ runs3, true);
ajaxRequest.send(null);
}
以及PHP文件
<?php
$servername = "localhost";
$username = "USER";
$password = "PASS";
$dbname = "labi8575_inventory";
$conn = mysql_connect($servername, $username, $password);
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db('labi8575_inventory');
$runs3 = $_POST["runs3"];
$sql = mysql_query("UPDATE demo SET runs3 = '$runs3'");
$retval = mysqli_query( $sql, $conn );
?>
问题是我无法将varruns3从javascript函数传递到php文件。我还根据以下主题(使用ajaxRequest.open将变量发送到php)尝试了类似ajaxRequest.open("POST","runs3.php?variable="+runs3)或ajaxRequest.open("POST","runs3.php?myvar=runs3",true)的解决方案;但就我而言,它不起作用。你知道我的情况出了什么问题吗?谢谢你的关心。
POST请求不使用URL作为参数!它是在url参数中使用的GET方法。。。
解决方案:
var runs3= value;
ajaxRequest.open("POST","runs3.php", true); //We open the url
ajaxRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //IMPORTANT!! We add this header to tell to PHP that it is a "form" which sent requesdt
ajaxRequest.send("value=" + encodeURIComponent(runs3)); //Then we send DATA HERE (encodeURIComponent encodes data to prevents URL-specific characters (for example '&'))
然后在PHP中获得$_POST["value"]
中的runs3值
这是"常规"方式。
但是,如果您想要更灵活的请求格式,也可以将数据发送为JSON:
var runs3 = {"val" : value};
ajaxRequest.open("POST","runs3.php", true); //We open the url
ajaxRequest.setRequestHeader("Content-type", "application/json");
ajaxRequest.send(JSON.stringify(runs3));
PHP方面:(此处解释:使用PHP读取JSONPOST):
$request = file_get_contents('php://input'); //raw request data
$object = json_decode($request, true); //we convert it to associative array, by JSON
print_r($object); //Should return Array[1] { "val" => YOUR_VALUE};
不是"常规"方式,但您发送的数据具有更好的灵活性(因为您不发送字符串,而是发送原始数据:对象/数组…)
试试这个。您的功能(ajax_runs3)
function ajax_runs3(value){
var ajaxRequest; // The variable that makes Ajax possible!
try{
ajaxRequest = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
document.myForm.time.value = ajaxRequest.responseText;
}
}
var runs3= value;
//ajaxRequest.open("POST","runs3.php"+ runs3, true);
// ajaxRequest.send(null);
var url = "runs3.php";
var params = "runs3="+value;
ajaxRequest.open("POST", url, true);
//Send the proper header information along with the request
ajaxRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
ajaxRequest.setRequestHeader("Content-length", params.length);
ajaxRequest.setRequestHeader("Connection", "close");
ajaxRequest.onreadystatechange = function() {//Call a function when the state changes.
if(ajaxRequest.readyState == 4 && ajaxRequest.status == 200) {
alert(ajaxRequest.responseText);
}
}
ajaxRequest.send(params);
}
相关文章:
- 将PHP变量传递给jQuery时遇到问题
- 通过javascript重定向html传递php变量
- 如何在php变量中嵌入JQuery代码
- 在javascript函数中使用php变量
- 将地理编码结果转换为php变量以发布到mysql数据库
- JavaScript,PHP-用JavaScript将多个数据库记录发送到变量或表
- 如何将变量php传递给javascript
- 显示动态变量(php和javascript)的总数
- 传递变量PHP、Javascript location.reload和HTML输入
- 需要将变量 php 的值传递给 javascript,但我不能
- 将变量从 .html 传递到太大而无法容纳在 URL 中的变量.php
- 如何在函数中传递javascript中的变量php
- 在Jquery中插入变量PHP
- 选择正确的变量 php/javascript
- 将HTML存储在变量PHP中,然后回显它
- 将变量PHP Smarty传递给Javascript
- 传递HTML表单post数据到不同的文件/网页javascript变量(php)
- 问题与传递变量(php, sql, jquery拖拽)
- 设置PHP中的javascaript变量(PHP在javascript中)
- 将变量php问题化为代码jquery