私はPHP変数にメッセージを保存して、もう戻ってきた他の配列変数に戻したいと思います。例えば、私はPHPコードの内部で行われるいくつかのエラーチェックを持っていて、特定のメッセージを持つ文字列変数をjavascriptで使用するために送り返したいと思います。ここで配列変数を使用してPHPからAJAXに文字列変数を戻す...?
はPHPです:
<?php
include('config-searchres.php');
$term = $_POST['resid'];
$sql = mysql_query("SELECT * FROM ap_form_8 WHERE id = '$term'"); //select first name (element_1_1) from form #8
if ($row = mysql_fetch_array($sql)){ //if reservation number exists
if ($row['element_11'] != 'Cancelled'){ //if reservation has not already been cancelled
if (strtotime($row['element_3']) >= strtotime(date("Y-m-d"))){ //if reservation has not already passed date
echo json_encode($row);
}
else //Reservation already passed (old reservation)
{
echo 'passed';
}
}
else //Reservation already cancelled
{
echo 'cancelled';
}
}
else //Reservation not found
{
echo 'not found';
}
mysql_close();
?>
あなたが見ることができるように、3種類のメッセージがある、「合格」、「キャンセル」、および「が見つかりません」...これらの条件のうちの1つが存在する場合、この文字列をjavascriptに送ってDIVに表示することができます。しかし、私はまた$行のデータをそれと一緒に送信したいと思っています。
私のjavascript:
<script type="text/javascript">
$(document).ready(function(){
resetForms('reservation');
$('#form-reservation').submit(function(event){
event.preventDefault(); //the page will no longer refresh on form submit.
var resCheck = $(this).find('input[class="reservationid"]').val(); //now we have the reservation ID, let's perform our check.
$.ajax({
url: 'inc/searchres.php',
type: 'POST',
data: 'resid='+resCheck,
success: function(data){ //data is all the info being returned from the php file
$('#reservation-id').val(resCheck); //add read ID back into text box
var jsonData = $.parseJSON(data); //parse returned JSON data so we can use it like data.name, data.whatever
//****I wanted the line just below this to display the appropriate message sent back from the PHP****
$("#res-message").html('<a>Reservation ID Located, Information is displayed below</a>');
$('#json-reservation').populate({personal_first_name:jsonData['element_1_1'],personal_last_name:jsonData['element_1_2'],personal_phone_1:jsonData['element_7'],personal_email:jsonData['element_2'],reservation_status:jsonData['ADD THIS CELL'], reservation_id:jsonData['id'], reservation_date:jsonData['element_3'],reservation_time:jsonData['element_4'],reservation_party:jsonData['element_5'],reservation_special_request:jsonData['element_6'],reservation_using_coupon:jsonData['element_9'],reservation_coupon_code:jsonData['element_10'],reservation_status:jsonData['element_11']});
$("#res-cancel-message").html('');
},
error: function(){
$("#res-message").html('<a>There was an error with your request</a>');
$("#res-cancel-message").html('');
}
});
});
});
</script>
私はこの時点では、静的なメッセージとDIVを移入アスタリスクでマークされたが、これは私がPHPからメッセージを取り込みますラインです。何か案は?
これらをJSでどのように分割するのですか?現在、データ配列を次のように設定しています。var jsonData = $ .parseJSON(data);メッセージとデータはどちらもこの配列に格納されているので、どのように分割するのですか? – tmparisi
nm、jsonData.statusまたは.dataでアクセスできます.....ありがとう! – tmparisi