[英]Send Multi Select box Values with Ajax & PHP
i have a problem in my php & ajax code so i have this Code 我的php和ajax代码有问题,所以我有此代码
<select id='absence_reason[]' name='absence_reason[]'>
<option value='1'>Value 1</option>
<option value='2'>Value 2</option>
<option value='3'>Value 3</option>
<option value='4'>Value 4</option>
<option value='5'>Value 5</option>
<option value='6'>Value 6</option>
</select>
<select id='absence_reason[]' name='absence_reason[]'>
<option value='1'>Value 1</option>
<option value='2'>Value 2</option>
<option value='3'>Value 3</option>
<option value='4'>Value 4</option>
<option value='5'>Value 5</option>
<option value='6'>Value 6</option>
</select>
Now i want to Send the values of this 2 select boxes with AJAX & PHP : Ok in Ajax i have write this code but is not work 现在我想使用AJAX和PHP发送这2个选择框的值:在Ajax中,我已经编写了此代码,但是不起作用
function adding_multi_absences() {
var reason = new Array();
$("input[name='absence_reason[]']:selected").each(function() {
reason.push( $(this).val() );
});
$.ajax({
type: "POST",
url: "include/ajax/adding_multi_absences.php",
data: {
add_multi_reason:reason
},
beforeSend: function () { // Before Send the data do somthing
$(".loader").fadeIn();
$(".showing").fadeIn();
},
success: function(data) { // If Process Success do somthing in our case will be show some data in browser
$("#resultshow").fadeIn().html(data);
},
error: function(err) { // if Process Error
alert(err);
},
complete: function() { // After complete all Request Do Somting
$('.loader').fadeOut();
setTimeout(get_student_for_multi_absences,2000); // Refresh Every X Seconde
}
});
}
and in my PHP File this Code 在我的PHP文件中此代码
if (!empty($_POST['add_multi_reason'])) {
// this variabel have Multi Values From CheckBox Of Select Student who Absences in Each Class
$reason = $_POST['add_multi_reason'];
$date_D = date('d');
$date_M = date('m');
$date_Y = date('Y');
$hours = date('H');
$mins = date('i');
$date_now = date('Y-m-d');
foreach ($absences as $student_code) {
add_absences($student_code,$reason,$admin_school_code,$date_D,$date_M,$date_Y,$hours,$mins,$admin_token,$admin_permission);
}
echo show_alert("success",$Lang['success_operation']);
}else{
echo show_alert("warning",$Lang['no_absence_selected']);
}
i want to send this 2 select box in data base but each one insert into a row thank you 我想在数据库中发送此2选择框,但每个插入到行中谢谢
You just need value attribute name in form. 您只需要表单中的值属性名称。 Example : Form
示例:表格
<form id="login_form">
<input type="text" name="username" id="a"/>
<input type="password" name="password" id="b"/>
<button type="button" onclick="login()">Submit</button>
</form>
Javascript 使用Javascript
$(document).ready(function(){});
function login(){
var obj = $('#login_form').serialize();
$.post('index.php', obj, function(res){
alert(res);
})
}
PHP - index.php PHP-index.php
<?php
if(!empty($POST['username']) && !empty($POST['password'])){
$user = $POST['username'];
$pass = $POST['password'];
$res = "Username : ".$user." || Password : ".$pass;
return $res;
}
?>
If you serialize the whole form as object and pass in URL you will get all possible and selected values. 如果将整个表单序列化为对象并传递URL,则将获得所有可能的值和选定的值。
HINT : below code will show you all received data. 提示:下面的代码将向您显示所有接收到的数据。 you can take alert in javascript.
您可以使用javascript发出警报。
<?php
print_r($_POST);
?>
you have to change your code a bit 1. that's how you get a value of select in array $("select[name='absence_reason[]']").each(function() { reason.push( $(this).val() ); })
2.then stringify your ajax reason array var data = {add_multi_reason: JSON.stringify(reason)}; $.ajax({ type: "POST", url: "include/ajax/adding_multi_absences.php", data: data, beforeSend: function () { // Before Send the data do somthing $(".loader").fadeIn(); $(".showing").fadeIn(); }, success: function(data) { // If Process Success do somthing in our case will be show some data in browser $("#resultshow").fadeIn().html(data); }, error: function(err) { // if Process Error alert(err); }, complete: function() { // After complete all Request Do Somting $('.loader').fadeOut(); setTimeout(get_student_for_multi_absences,2000); // Refresh Every X Seconde } });
您必须稍稍更改代码1。这就是在数组
$("select[name='absence_reason[]']").each(function() { reason.push( $(this).val() ); })
获得select值的方式 $("select[name='absence_reason[]']").each(function() { reason.push( $(this).val() ); })
2.然后将您的ajax原因数组字符串化 var data = {add_multi_reason: JSON.stringify(reason)}; $.ajax({ type: "POST", url: "include/ajax/adding_multi_absences.php", data: data, beforeSend: function () { // Before Send the data do somthing $(".loader").fadeIn(); $(".showing").fadeIn(); }, success: function(data) { // If Process Success do somthing in our case will be show some data in browser $("#resultshow").fadeIn().html(data); }, error: function(err) { // if Process Error alert(err); }, complete: function() { // After complete all Request Do Somting $('.loader').fadeOut(); setTimeout(get_student_for_multi_absences,2000); // Refresh Every X Seconde } });
var data = {add_multi_reason: JSON.stringify(reason)}; $.ajax({ type: "POST", url: "include/ajax/adding_multi_absences.php", data: data, beforeSend: function () { // Before Send the data do somthing $(".loader").fadeIn(); $(".showing").fadeIn(); }, success: function(data) { // If Process Success do somthing in our case will be show some data in browser $("#resultshow").fadeIn().html(data); }, error: function(err) { // if Process Error alert(err); }, complete: function() { // After complete all Request Do Somting $('.loader').fadeOut(); setTimeout(get_student_for_multi_absences,2000); // Refresh Every X Seconde } });
3. and that's how you get values of two selects in php $feedback = json_decode($_POST['add_multi_reason']);
3.这就是您在php
$feedback = json_decode($_POST['add_multi_reason']);
获得两个选择的值的方式 $feedback = json_decode($_POST['add_multi_reason']);
first select value var_dump($feedback[0]);
首先选择值
var_dump($feedback[0]);
second select value var_dump($feedback[1]);
第二个选择值
var_dump($feedback[1]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.