[英]How to pass two values to a PHP file using javascript Ajax
I have written a code for two dropdown boxes. 我已经为两个下拉框编写了代码。 when I select the values from two boxes, the values should go to a php file using GET method. 当我从两个框中选择值时,这些值应使用GET方法转到一个php文件中。 the values should go to php file when both boxes are selected. 同时选中两个框时,这些值应转到php文件。
Here is my code: 这是我的代码:
<script>
function CatName(str1, str2) {
if (str == "") {
document.getElementById("album_name").innerHTML = "";
return;
} else {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("album_name").innerHTML = xmlhttp.responseText;
}
};
xmlhttp.open("GET", "update.php?q=" + str1 + "&q1=" + str2, true);
xmlhttp.send();
}
}
</script>
<div class="col-xs-6 col-sm-6 col-md-4 col-md-offset-1">
<div class="form-group">
<select class="form-control" name="category_name" id="id-of-the-first-select-box-here">
<option value="" selected>Please Select</option>
<option value="Birds">Birds</option>
<option value="Animals">Animals</option>
<option value="Notinlist">Category Not in list</option>
</select>
</div>
</div>
<div class="col-xs-6 col-sm-6 col-md-4 col-md-offset-1">
<div class="form-group" >
<select class="form-control" name="album_name" onchange="CatName(this.value, document.getElementById('id-of-the-first-select-box-here').value)">
<option value="" selected>Please Select</option>
<option value="sadb">sadb</option>
<option value="Animals">Animals</option>
<option value="Notinlist">Category Not in list</option>
</select>
</div>
</div>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title>
</title>
<script>
$("document").ready(function()
{
$("#web_master_name").change(function() // domain sorting via webmasters
{
var cat_val=("#category_name").val();
var alb_val=("#album_name").val();
$.post('ajax_actions.php?act=get_cat&cat_val='+cat_val+'&alb_val='+alb_val,function(data)
{
aler(data);
});
});
});
</script>
</head>
<body>
<div class="col-xs-6 col-sm-6 col-md-4 col-md-offset-1">
<div class="form-group">
<select class="form-control" id="category_name">
<option value="" selected>Please Select
</option>
<option value="Birds">Birds
</option>
<option value="Animals">Animals
</option>
<option value="Notinlist">Category Not in list
</option>
</select>
</div>
</div>
<div class="col-xs-6 col-sm-6 col-md-4 col-md-offset-1">
<div class="form-group" >
<select class="form-control" id="album_name">
<option value="" selected>Please Select
</option>
<option value="sadb">sadb
</option>
<option value="Animals">Animals
</option>
<option value="Notinlist">Category Not in list
</option>
</select>
</div>
</div>
</body>
</html>
php file
<?php
error_reporting(0);
foreach ($_GET as $name => $value) { $$name = $value; }
foreach ($_POST as $name => $value) { $$name = $value; }
// warning Dont chnage anything in This ajax action file
// -------------------------------------------------------------------------------
if($act=="get_cat") // function for saving domain
{
echo $cat_val;
echo $alb_val;
}
Try this simple way using serialize
. 使用serialize
尝试这种简单的方法。 it will capture everything 它会捕获一切
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-beta1/jquery.min.js"></script>
<script>
$(function(){
$(document).on("click", ".submit", function(e) {
e.preventDefault();
var first = $("#id-of-the-first-select-box-here").val();
var second = $("#secondselect").val();
if(first=='')
{
alert("enter first select");
}
else {
//Built a url to send
var info = $("#form").serialize();
$.ajax({
type: "POST",
url: "update.php",
data: info,
success: function(result){
alert(result);
$("#form")[0].reset();
$('#area').html(html);
}
});
e.preventDefault();
}
});
});
</script>
<div id="area"></div>
<form id="form">
<div class="col-xs-6 col-sm-6 col-md-4 col-md-offset-1">
<div class="form-group">
<select class="form-control" name="category_name" id="id-of-the-first-select-box-here">
<option value="" selected>Please Select</option>
<option value="Birds">Birds</option>
<option value="Animals">Animals</option>
<option value="Notinlist">Category Not in list</option>
</select>
</div>
</div>
<div class="col-xs-6 col-sm-6 col-md-4 col-md-offset-1">
<div class="form-group" >
<select class="form-control" id="secondselect" name="album_name" onchange="CatName(this.value, document.getElementById('id-of-the-first-select-box-here').value)">
<option value="" selected>Please Select</option>
<option value="sadb">sadb</option>
<option value="Animals">Animals</option>
<option value="Notinlist">Category Not in list</option>
</select>
</div>
</div>
<input name="submit" class="submit" type="button">
</form>
And your update php page 而您的更新php页面
<?php
$category_name = $_POST['category_name'];
$album_name = $_POST['album_name'];
//your result
echo $category_name;
echo $album_name;
?>
To me it looks like you are pretty much there already apart from the value for the first dropdown. 在我看来,除了第一个下拉列表的值之外,您已经差不多了。
To get the value of the first dropdown menu you could use: 要获取第一个下拉菜单的值,可以使用:
<select class="form-control" name="album_name" onchange="CatName(this.value, document.getElementById('id-of-the-first-select-box-here').options[ document.getElementById('id-of-the-first-select-box-here').options.selectedIndex ].value )">
However, I might be tempted in the CatName
function to check that str2
is set before submitting the ajax request. 但是,在提交ajax请求之前,我可能会CatName
函数来检查str2
是否已设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.