Передача данных в модальный режим в Laravel Blade с Javascript - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь использовать этот API https://developers.paystack.co/reference#paystack -inline-x в моем laravel блейд-файле. Каждый раз, когда я нажимаю кнопку, он пытается отправить запрос, вместо того, чтобы вызвать способ оплаты.

Я включил Ajax, как того требуют документы, но все еще безуспешно. Модал должен использовать данные из формы.

    <div class="row justify-content-center">
        <div class="col-md-6">
            <div class="card">
                <div class="card-header">{{ __('Giving Particulars') }}</div>

                <div class="card-body">
                    @if (session('status'))
                    <div class="alert alert-success" role="alert">
                        {{ session('status') }}
                    </div>
                    @elseif(session('error'))
                    <div class="alert alert-danger" role="alert">
                        {{ session('error') }}
                    </div>
                    @endif

                    <form id="pay-form">
                        <div class="form-group row">
                            <label for="amount" class="col-md-4 col-form-label text-md-right">{{ __('Amount') }}</label>

                            <div class="col-md-6">
                                <input id="amount" type="number" class="form-control rounded-0 @error('amount') is-invalid @enderror" name="amount" required placeholder="3000">

                                @error('amount')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <label for="name" class="col-md-4 col-form-label text-md-right">{{ __('Name (optional)') }}</label>

                            <div class="col-md-6">
                                <input id="name" type="text" class="form-control rounded-0 @error('name') is-invalid @enderror" name="name" placeholder="John ">

                                @error('name')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <label for="email" class="col-md-4 col-form-label text-md-right">{{ __('Email (optional)') }}</label>

                            <div class="col-md-6">
                                <input id="email" type="email" class="form-control rounded-0 @error('email') is-invalid @enderror" name="email" placeholder="abc@xyz.com">

                                @error('email')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <label for="purpose" class="col-md-4 col-form-label text-md-right">{{ __('Purpose (optional)') }}</label>

                            <div class="col-md-6">
                                <input id="purpose" type="text" class="form-control rounded-0 @error('purpose') is-invalid @enderror" name="purpose" placeholder="e.g tithe">

                                @error('purpose')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row mb-0">
                            <div class="col-md-8 offset-md-4">
                                <button type="submit"  onclick="payWithPaystack()" class="btn btn-primary rounded-0">
                                    {{ __('Give') }}
                                </button>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>

А вот мой JS код

<form >
  <script src="https://js.paystack.co/v1/inline.js"></script>
</form>

<script>
     var organisation_id =  getElementByName('id').value;
     var amountInKobo = document.getElementById('amount').value *100;
     var email = document.getElementById('email').value;
     var name = document.getElementById('name').value;
     var purpose = document.getElementById('purpose').value;

     if (email == '' || email == null) {
         email = 'abc@xyz.com';
     }

  function payWithPaystack(){
    var handler = PaystackPop.setup({
       key: 'public key',
       email: email,
       amount: amountInKobo,
       currency: "NGN",

         metadata: {
             purpose: purpose,
             name: name,
             organisation_id: organisation_id
         },
      callback: function(response){
        window.location.href= '/givenow/public/guest/verify/'+response.reference;
      },
      onClose: function(){
          alert('window closed');
      }
    });
    handler.openIframe();
  }
</script>
...