【Labs】JavaScriptで取得した値をPHPに渡す - web design lab
にほんブログ村 デザインブログ Webデザインへ PVアクセスランキング にほんブログ村

【Labs】JavaScriptで取得した値をPHPに渡す


【Labs】JavaScriptで取得した値をPHPに渡す

こんにちは(・∀・)

今日はJavaScriptで取得した値をPHPに渡すサンプルをご紹介します。

前回ご紹介しましたが、【Labs】JavaScriptでラジオボタンとチェックボックスの入力判定のラジオボタンとチェックボックスで取得した値を、今度はPHPに渡すサンプルになります。

Contents

  1. JavaScriptで取得したラジオボタンの値をPHPに渡す
  2. JavaScriptで取得したチェックボックスの値をPHPに渡す
1. JavaScriptで取得したラジオボタンの値をPHPに渡す

index.htmlとindex2.phpの2ファイル構成です。

index.html

<div class="tb-cell sample-form">
<form id="form" action="index2.php" method="post">
<div class="row">
<div class="cell">
<p>選択してください</p>
<!--cell--></div>
<div class="cell">
<label><input type="radio" name="rbtn[]" value="1"> A</label><br>
<label><input type="radio" name="rbtn[]" value="2"> B</label><br>
<label><input type="radio" name="rbtn[]" value="3"> C</label><br>
<label><input type="radio" name="rbtn[]" value="4"> D</label>
<p id="output"></p>
<!--cell--></div>
<!--row--></div>
<div class="row">
<div class="cell">
&nbsp;
<!--cell--></div>
<div class="cell">
<button type="submit" id="sbtn" name="action" value="post">submit</button>
<button type="reset" id="rbtn">reset</button>
<!--cell--></div>
<!--row--></div>
</form>
<!--tb-cell--></div>
index.htmlのJavaScript

<script>
function radio(){
var str='';
for( var num=0; num<document.forms['form'].elements['rbtn[]'].length; ++num ){
if( document.forms['form'].elements[num].checked ){
if( str != '' ) str=str+',';
str=str+document.forms['form'].elements[num].value;
}
}
target = document.getElementById('output');
if( str!='' ){
target.innerHTML = '';
return true;
}else{
target.innerHTML = '<p id="output3">選択してください</p>';
return false;
}
}
document.forms['form'].onsubmit = radio;
function resetall() {	 	 
target.innerHTML = '';	 	 
return false;	 	 
}
var rbtn = document.getElementById('rbtn');
rbtn.addEventListener('click',resetall,false);
</script>
index2.php

<html>タグの前
<?php 
session_start();
if(isset($_POST['rbtn'])){
$_SESSION['rbtn'] = implode($_POST['rbtn']);
}
?>
<body>タグ内
<?php
$action = $_POST['action'];
if($action == "post"){
echo '<div class="tb-cell sample-form">';
echo '<form id="form">';
echo '<div class="row">';
echo '<div class="cell">';
echo '<p>選択しました</p>';
echo '<!--cell--></div>';
echo '<div class="cell">';
echo $_SESSION['rbtn'];
echo '<!--cell--></div>';
echo '<!--row--></div>';
echo '<div class="row">';
echo '<div class="cell">';
echo '&nbsp;';
echo '<!--cell--></div>';
echo '<div class="cell">';
echo '<button type="button" onclick="history.go(-1)">back</button>';
echo '<!--cell--></div>';
echo '<!--row--></div>';
echo '</form>';
echo '<!--tb-cell--></div>';
$_SESSION = array();
session_destroy();
}
?>
CSS

.tb-cell {
  display: table;
  margin: 20px auto 40px auto;
  text-align: left;
  width: 300px;
}
.tb-cell .row {
  display: table-row;
}
.tb-cell .row .cell {
  display: table-cell;
  border: 1px solid #ddd;
  padding: 10px;
  vertical-align: middle;
  color: #fff;
}
.tb-cell .row .cell:nth-child(odd) {
  width: 100px;
}
.tb-cell .row .cell:nth-child(even) {
  width: 200px;
}
.sample-form .row .cell {
  padding: 5px;
}
.sample-form .row .cell:nth-child(1) {
  background: #9fb7d4;
}
.sample-form .row .cell:nth-child(2) {
  background: #ccc;
}
input[type="text"] {
  height: 30px;
  font-size: 16px;
}
button {
  color: #fff;
  border: none;
  padding: 10px;
  font-size: 16px;
  cursor: pointer;
}
button[type="button"] {
  margin-left: 10px;
}
button[type="submit"] {
  background: #afc6e2;
}
button[type="button"],
button[type="reset"] {
  background: none;
}
button[type="submit"]:hover {
  background: #ddd;
}
button[type="button"]:hover,
button[type="reset"]:hover {
  text-decoration: underline;
}
label {
  margin-right: 10px;
}
#output3 {
  color: #f00;
}
@media (min-width: 768px) {
.tb-cell {
  width: 800px;
}
.tb-cell .row {
  display: table-row;
}
.tb-cell .row .cell {
  display: table-cell;
  border: 1px solid #ddd;
  padding: 10px;
  vertical-align: middle;
  color: #fff;
}
.tb-cell .row .cell:nth-child(odd) {
  width: 200px;
}
.tb-cell .row .cell:nth-child(even) {
  width: 600px;
}
/* ** */}
サンプルデモ

Result
スマホでのご確認はこちらをどうぞ
QRコード

2. JavaScriptで取得したチェックボックスの値をPHPに渡す

index.htmlとindex2.phpの2ファイル構成です。

index.html

<div class="tb-cell sample-form">
<form id="form" action="index2.php" method="post">
<div class="row">
<div class="cell">
<p>選択してください</p>
<!--cell--></div>
<div class="cell">
<label><input type="checkbox" name="cbox[]" value="1"> A</label><br>
<label><input type="checkbox" name="cbox[]" value="2"> B</label><br>
<label><input type="checkbox" name="cbox[]" value="3"> C</label><br>
<label><input type="checkbox" name="cbox[]" value="4"> D</label>
<p id="output"></p>
<!--cell--></div>
<!--row--></div>
<div class="row">
<div class="cell">
&nbsp;
<!--cell--></div>
<div class="cell">
<button type="submit" id="sbtn" name="action" value="post">submit</button>
<button type="reset" id="rbtn">reset</button>
<!--cell--></div>
<!--row--></div>
</form>
<!--tb-cell--></div>
index.htmlのJavaScript

<script>
function checkbox(){
var str='';
for( var num=0; num<document.forms['form'].elements['cbox[]'].length; ++num ){
if( document.forms['form'].elements[num].checked ){
if( str != '' ) str=str+',';
str=str+document.forms['form'].elements[num].value;
}
}
target = document.getElementById('output');
if( str!='' ){
target.innerHTML = '';
return true;
}else{
target.innerHTML = '<p id="output3">選択してください</p>';
return false;
}
}
document.forms['form'].onsubmit = checkbox;
function resetall() {	 	 
target.innerHTML = '';	 	 
return false;	 	 
}
var rbtn = document.getElementById('rbtn');
rbtn.addEventListener('click',resetall,false);
</script>
index2.php

<html>タグの前
<?php 
session_start();
if(isset($_POST['cbox'])){
$_SESSION['cbox'] = implode(',',$_POST['cbox']);
}
?>
<body>タグ内
<?php
$action = $_POST['action'];
if($action == "post"){
echo '<div class="tb-cell sample-form">';
echo '<form id="form">';
echo '<div class="row">';
echo '<div class="cell">';
echo '<p>選択しました</p>';
echo '<!--cell--></div>';
echo '<div class="cell">';
echo $_SESSION['cbox'];
echo '<!--cell--></div>';
echo '<!--row--></div>';
echo '<div class="row">';
echo '<div class="cell">';
echo '&nbsp;';
echo '<!--cell--></div>';
echo '<div class="cell">';
echo '<button type="button" onclick="history.go(-1)">back</button>';
echo '<!--cell--></div>';
echo '<!--row--></div>';
echo '</form>';
echo '<!--tb-cell--></div>';
$_SESSION = array();
session_destroy();
}
?>
CSS

.tb-cell {
  display: table;
  margin: 20px auto 40px auto;
  text-align: left;
  width: 300px;
}
.tb-cell .row {
  display: table-row;
}
.tb-cell .row .cell {
  display: table-cell;
  border: 1px solid #ddd;
  padding: 10px;
  vertical-align: middle;
  color: #fff;
}
.tb-cell .row .cell:nth-child(odd) {
  width: 100px;
}
.tb-cell .row .cell:nth-child(even) {
  width: 200px;
}
.sample-form .row .cell {
  padding: 5px;
}
.sample-form .row .cell:nth-child(1) {
  background: #9fb7d4;
}
.sample-form .row .cell:nth-child(2) {
  background: #ccc;
}
input[type="text"] {
  height: 30px;
  font-size: 16px;
}
button {
  color: #fff;
  border: none;
  padding: 10px;
  font-size: 16px;
  cursor: pointer;
}
button[type="button"] {
  margin-left: 10px;
}
button[type="submit"] {
  background: #afc6e2;
}
button[type="button"],
button[type="reset"] {
  background: none;
}
button[type="submit"]:hover {
  background: #ddd;
}
button[type="button"]:hover,
button[type="reset"]:hover {
  text-decoration: underline;
}
label {
  margin-right: 10px;
}
#output3 {
  color: #f00;
}
@media (min-width: 768px) {
.tb-cell {
  width: 800px;
}
.tb-cell .row {
  display: table-row;
}
.tb-cell .row .cell {
  display: table-cell;
  border: 1px solid #ddd;
  padding: 10px;
  vertical-align: middle;
  color: #fff;
}
.tb-cell .row .cell:nth-child(odd) {
  width: 200px;
}
.tb-cell .row .cell:nth-child(even) {
  width: 600px;
}
/* ** */}
サンプルデモ

Result
スマホでのご確認はこちらをどうぞ
QRコード

関連リンク

【Labs】JavaScriptでラジオボタンとチェックボックスの入力判定


にほんブログ村 デザインブログ Webデザインへ PVアクセスランキング にほんブログ村