AJAXを使用してJavaScriptから配列を投稿しています
$.ajax({
url: "test.php",
type: "POST",
data: {arr:fullData},
success: function (data) {
console.log(data);
document.getElementById("status").innerHTML = data;
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Status: " + textStatus);
alert("Error: " + errorThrown);
}
これは配列です:
0: "event=200 Yard Free Style&swimmername=joe fish&lane=1&time=00:00:00&place=0&scoreA=0&scoreB=0&place2=0&time2=00:00:00&lane2=2&swimmername2=joe fish"
1: "event=200 Yard Free Style&swimmername=steve jobs&lane=3&time=00:00:00&place=0&scoreA=0&scoreB=0&place2=0&time2=00:00:00&lane2=4&swimmername2=steve jobs"
2: "event=200 Yard Free Style&swimmername=steve jobs&lane=5&time=00:00:00&place=0&scoreA=0&scoreB=0&place2=0&time2=00:00:00&lane2=6&swimmername2=steve jobs"
length: 3
PHPでは、配列は次のようになります。
array (size=1)
'arr' =>
array (size=3)
0 => string 'event=200 Yard Free Style&swimmername=joe fish&lane=1&time=00:00:00&place=0&scoreA=0&scoreB=0&place2=0&time2=00:00:00&lane2=2&swimmername2=joe fish' (length=147)
1 => string 'event=200 Yard Free Style&swimmername=steve jobs&lane=3&time=00:00:00&place=0&scoreA=0&scoreB=0&place2=0&time2=00:00:00&lane2=4&swimmername2=steve jobs' (length=151)
2 => string 'event=200 Yard Free Style&swimmername=steve jobs&lane=5&time=00:00:00&place=0&scoreA=0&scoreB=0&place2=0&time2=00:00:00&lane2=6&swimmername2=steve jobs' (length=151)
「explode()」を使用してみましたが、「配列」を分解できないと表示され続けます
私は次のことをしようとしています:
$array = $_POST;
var_dump ($array[0]['event'] );
さまざまな値を設定して、次のようなSQLクエリを作成します(ループ内)。
foreach($_POST as $data)
{
$sql_query = '(';
if(isset($array['event'])){$sql_query .= $array['event'] . ',';}
if(isset($array['event'])){$sql_query .= $array['swimmername'] . ',';}
私はPHPに不慣れで、それを理解するのに苦労しています。どんな助けでもありがたいです。
PHPコード:
<?php
$array = $_POST;
$array1 = $_REQUEST['arr'];
var_dump($array['arr']);
$returnedInfo = explode('&',$array[1]);
// Empty string when using an empty array:
echo ($returnedInfo);
$sql_query = 'INSERT INTO tbl_name
(event,swimmername, lane, place, time, score, )
VALUES ';
$i = 0;
$arrayLength = count($_POST);
var_dump ($arrayLength);
foreach($_POST as $data)
{
$sql_query = '(';
if(isset($data['event'])){$sql_query .= $data['event'] . ',';}
if(isset($data['swimmername'])){$sql_query .= ','. $data['swimmername'] . ',';}
if(isset($data['lane'])){$sql_query .= ','. $data['lane'] . ',';}
if(isset($data['place'])){$sql_query .= ','. $data['place'] . ',';}
if(isset($data['time'])){$sql_query .= ','. $data['time'] . ',';}
if(isset($data['scoreA'])){$sql_query .= ','. $data['scoreA'] . ',';}
if(isset($data['scoreB'])){$sql_query .= ','. $data['scoreB'] . ',';}
if(isset($data['time2'])){$sql_query .= ','. $data['time2'] . ',';}
if(isset($data['lane2'])){$sql_query .= ','. $data['lane2'] . ',';}
if(isset($data['place2'])){$sql_query .= ','. $data['place2'] . ',';}
if(isset($data['swimmername2'])){$name2[] = $data['swimmername2'] . ',';}
$i++;
if($i < $arrayLength) {
$sql_query .= '),';
} else {
$sql_query .= ');';
}
}
// Then use $sql_query for the INSERT step.
?>
配列が次のようになっていると仮定します。
array (
'arr' =>
array (
0 => 'event=200 Yard Free Style&swimmername=joe fish&lane=1&time=00:00:00&place=0&scoreA=0&scoreB=0&place2=0&time2=00:00:00&lane2=2&swimmername2=joe fish',
1 => 'event=200 Yard Free Style&swimmername=steve jobs&lane=3&time=00:00:00&place=0&scoreA=0&scoreB=0&place2=0&time2=00:00:00&lane2=4&swimmername2=steve jobs',
2 => 'event=200 Yard Free Style&swimmername=steve jobs&lane=5&time=00:00:00&place=0&scoreA=0&scoreB=0&place2=0&time2=00:00:00&lane2=6&swimmername2=steve jobs',
),
)
...単にループして、parse_str(簡単)やexplode(少し手間がかかる)などを使用して、各文字列を配列に変換する必要があります。例えば:
# Grab the 'arr' array
$realArray = isset($array['arr']) ? $array['arr'] : array();
foreach ( $realArray as $k => $v ) {
# Quick and painless way to convert to array
parse_str($v, $value);
$realArray[$k] = $value;
}
# Put this into a function called 'debug' to make life easier
echo '<pre>';
var_export($realArray);
echo '</pre>';
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加