Не удается сохранить значение нескольких флажков, отмеченных после отправки формы при загрузке ajax в php - PullRequest
0 голосов
/ 29 января 2019

У меня есть одна простая форма, которая имеет: От даты, до даты. Когда я нажимаю на кнопку «Отправить», я получаю список бронирований автомобилей при загрузке AJAX.В каждой строке есть флажок для выбора этой строки, и после многократного выбора строки нажимается общая кнопка, чтобы добавить счет на следующей странице.Теперь моя проблема заключается в том, что я хочу выбрать несколько строк и снова заполнить их датой, датой, а затем отправить форму, чтобы получить другой список, чтобы снова выбрать другие строки для добавления счета, теперь проблема заключается в том, что при повторной отправке формы старые выбранные строки несохранить, так что я могу получить все выбранные строки все вместе на странице счета.Прямо сейчас ниже все фрагменты работают правильно, но я понятия не имею, как это сделать, когда форма снова заполнена и выбор сделан.Ниже код только делает выбор текущей страницы.1. Это ajax-скрипт

<script> $("#button").click(function(){
document.getElementById("loading").style.display = "block"; 
document.getElementById("overlay").style.opacity = '0.2';
var toDate = $("#datepicker2").val();
var fromDate = $("#datepicker").val();  
// var comp = $("#comp").val();
var dataString = 'fromDate='+ fromDate + '&toDate='+ toDate;
$.ajax({
  url: 'CloseBookingload.php',
  data:dataString,
  type: 'POST',
  success: function(result){
          // console.log(result);
           $("#load").show();
          $("#resultData").html(result);
           document.getElementById("loading").style.display = "none"; 
           document.getElementById("overlay").style.opacity = '1';
        }
      }); });</script>

Это поле флажка моей ajax-страницы после загрузки

 <input type="checkbox" id="checkselect" name="checkselect[]" value="<?php echo $row['car_booking_id'];?>">

Это поле выбора значений флажка

    $checkselect=array();
if(!empty($_POST['checkselect']))
{
    $checkselect=$_POST['checkselect']; 
    $nc = count($checkselect);
    for($i=0;$i<$nc;$i++)
    {
    $dids = $checkselect[$i];
    }
    $ids = join(",",$checkselect);
    $booking_car = $db->prepare("SELECT * FROM `car_booking`
    left join driver_master on driver_master.driver_id = car_booking.driver_id
    left join vendor_master on vendor_master.vendor_id=car_booking.vendor_name
    left join company_master on company_master.company = car_booking.company
    inner join city_master on city_master.city_id=car_booking.action
    WHERE booked_status=1 and car_booking.slip=1 and car_booking.car_booking_id in ($ids)  order by  str_to_date( booking_date,'%d/%m/%Y') asc ");
    $booking_car->execute();
    $MyArr=$booking_car->fetchall();
    // print_r($MyArr);
    // die;
    $booking_car2 = $db->prepare("SELECT * FROM `car_booking`
    left join driver_master on driver_master.driver_id = car_booking.driver_id
    left join vendor_master on vendor_master.vendor_id=car_booking.vendor_name
    left join company_master on company_master.company = car_booking.company
    inner join city_master on city_master.city_id=car_booking.action WHERE booked_status=1 and car_booking.slip=1 and car_booking.car_booking_id in ($ids) order by  str_to_date( booking_date,'%d/%m/%Y') asc ");
    $booking_car2->execute();
    $r2=$booking_car2->fetch();
}

for($i=0;$i<count($MyArr);$i++){

    $NewIDArr[$i][0]=$MyArr[$i]['car_booking_id'];
}
$Mixed = $NewIDArr;
$r = json_encode($Mixed);
$RequestText = urlencode($r);
?>
    <input type="hidden" name="RequestText" value="<?php echo $RequestText; ?>"> 
    <input type = "submit" name = "update" value = "Update">

Первая страница ИЗОБРАЖЕНИЕ Главная страница ИЗОБРАЖЕНИЕ

Страница, на которой выбираются и обновляются фактические значения

<?php
                require_once '../dbconfig.php';
                $r = urldecode($_REQUEST['RequestText']);
                $Mixed = json_decode($r);
                $bill=$_POST['bill'];
                $remark=$_POST['remark'];

                //$RequestText = $_POST['RequestText'];
                $singleArray = []; 
                foreach ($Mixed as $childArray) 
                { 
                    foreach ($childArray as $value) 
                    { 
                    $singleArray[] = $value; 
                    } 
                }


                // print_r($singleArray);
                // print_r( $bill);
                // print_r($remark);
                // die;7615, 7631

                    $nc = count($singleArray);
                    //print_r($nc);
                        for($i=0;$i<$nc;$i++)
                        {
                        $did = $singleArray[$i];
                        $data=array('bill_no'=>$bill,'remark'=>$remark);
                        $where = array('car_booking_id' =>$did);    
                        $update = $db->update('car_booking',$data,$where)- 
                       >affectedRows();

                        }
                        header("Location:close_booking.php");
                            //echo "Updated";

    ?>

1 Ответ

0 голосов
/ 29 января 2019

Теперь, когда вы будете отправлять выбранные строки в массивах, проверяйте идентификатор по значениям сеанса закрытых заказов и выполняйте манипуляции, не нажимая снова, и переходите к странице счета.Создайте сеанс с закрытыми бронированиями перед отправкой ответа обратно клиентскому серверу и сохраните, как показано ниже: -

Array
(
[closed_bookings] => Array
    (
        [123] => Array
            (
                [name] => abc
                [company_name] => abc pvt ltd
                [id] => 123
            )

        [1234] => Array
            (
                [name] => xyz
                [company_name] => abc pvt ltd
                [id] => 1234
            )

    )

)

Значения выбранных строк будут выглядеть следующим образом: *

Array
(
[0] => 123,
[1] => 1234
)

Теперь используйте цикл foreachс выбранными строками и получить значения из закрытых заказов с этим ключом (значение выбранного значения, например, 123), и вы делаете манипуляции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...