Jump to content

Pitag346

Members
  • Content count

    164
  • Joined

  • Last visited

Everything posted by Pitag346

  1. Olá galera, tudo bom ? Estou com uma dúvida... Tenho uma função javascript em que faz algumas requisições de uma API... porem eu tenho q chamar essa api a cada 4 minutos! (caso o usuário tenha ativado). Tudo bem... essa função está em um arquivo chamado: Ativador.js E está configurada na index.php do meu site... (ao usuário apertar o botão ATIVAR, ele faz a requisição e com o SetInterval chama ela novamente a cada 4 minutos). Mas ai que vem minha dúvida... Ao usuário mudar de pagina, a função para e o usuário teria que apertar ATIVAR novamente... Gostaria de saber como fazer com que se o botão ativar for acionado e a função estivesse chamada (fazendo as requisições a cada 4 minutos) e o usuário mudasse de pagina isso continuaria... (Fazendo as requisições a cada 4 minutos) estilo o mini player do youtube.... POREM SE O USUÁRIO SAIR DO SITE E VOLTAR NOVAMENTE A FUNÇÃO ESTARIA DESATIVADA (O usuário teria que acionar o botão ativar novamente.,) Obrigado. Ficou meio confuso se não tiverem entendido posso explicar melhor! Só queria um norte pois não sei como iniciar, tentei fazer algo com o LocalStorage ... declarando que a função está ativada e etc... mas tive problemas!
  2. Pitag346

    Manter função em outras paginas!

    Esse é o detalhe... Quando o usuário fechar a pagina e voltar (as vezes rapidamente) o cookie pode ainda estar disponível ou seja, a função ira continuar ativa! Tem algum forma de eu definir para os cookies expirarem caso fechar a pagina ?
  3. Pitag346

    Carregamento de imagem

    Olá pessoal, tudo bem? Estou com uma dúvida bem bobinha... mas gostaria que me ajudassem a solucionar. Alguns sites utilizam uma forma de carregar as imagens deixando elas embaçadas/desfocadas. Até que são carregadas e elas aparecerem normalmente... Exemplo básico seria esse site: https://www.redbull.com/br-pt/athletes Sabem me explicar como isso é feito, e pra que ? Meu site usa bastante imagens, gostaria de saber se tem algum benefício ou se seria somente estética ... Obrigado! (Não sei se isso é feito em JavaScript, acredito que sim... perdão se publiquei na área errada).
  4. Pitag346

    Calculo em Javascript

    Olá pessoal, tudo bem ? Estou com um probleminha bem chato que não faço ideia como resolver... Espero que me ajudem! Agradeço desde já. Vamos lá. Preciso fazer um calculo com a seguinte expressão: (ValorAtual/100*10)+parseFloat(ValorAtual)-parseFloat(Saque)+parseFloat(Deposito); Até o momento estou obtendo sucesso com a expressão acima. Agora vem o problema. Após eu obter o resultado da expressão acima, eu preciso substituir a variável ValorAtual com o resultado do mesmo, isso 12 vezes. (12 meses). Não sei se ficou muito bem explicado, porem eu preciso fazer essa função com valores já definidos e as próximas 12 vezes com valores a definir ou 0. Vou fazer uma nova explicação com os códigos comentados: var ValorAtual = 1000; var Saque = 0; // zero seria o padrão, eu poderia adicionar valores diferentes. (para cada mês, se possivel). var Deposito = 0; // zero seria o padrão, eu poderia adicionar valores diferentes. (para cada mês, se possivel).. var resultado = (ValorAtual/100*10)+parseFloat(ValorAtual)-parseFloat(Saque)+parseFloat(Deposito); Preciso recuperar o primeiro resultado, no exemplo acima seria: 1100 Então após recuperar o valor acima, eu precisaria substituir o ValorAtual para 1100. Isso, 12 vezes... Recuperando o valor e substituindo como se fosse um calculo de juros mensais (12 meses). Tentei fazer com while mas não obtive exito. Estou parado com a função simples que detalhei acima. Obrigado. Espero tenham entendido e agradeço desde já!
  5. Pitag346

    Calculo em Javascript

    @Felipe Guedes Coutinho , perdão pela demora amigo. Acabei ficando sem acesso a internet. Muito obrigado mesmo, solucionou meu problema! e ACHEI SEU CÓDIGO INCRÍVEL! por algum motivo não estou conseguindo reagir ao post! Mas eu agradeço muito.
  6. Pitag346

    Calculo em Javascript

    @Felipe Guedes Coutinho Muito obrigado pela resposta, eu utilizei o FOR com a expressão que eu criei e acabou dando certo. Vou tentar explicar melhor sobre o meses. Oque eu estou querendo fazer é um sistema de simulação de rendimento, onde o 10% do ValorAtual é somado com ele mesmo, subtraído o valor que você sacou/retirou e adicionando o valor que depositou/entrou. Os valores de Saque e Deposito seriam adicionados via HTML/INPUT. Em uma página html tenho 12 quadros que mostram os 12 meses, dentro desses quadros existem 2 campos, SAQUE E DEPOSITO onde eu posso deixar em branco e utilizar o valor 0 ou preencher. Caso preencher alterar os valores seguintes. O resultado utilizando dessa forma: for(var i = 0; i < 13; i++){ var resultado = (parseFloat(valoratual)/100*10)+parseFloat(valoratual)-parseFloat(saquev)+parseFloat(depositov); valoratual = resultado; console.log(valoratual); //retorna os 12 valores corretamente. }; Como podemos ver acima, os valores de cada mês, se dependem. Ou seja, eu não sei de que forma eu possa gerar os 12 valores onde eu posso alterar os dados SAQUE E DEPOSITO do mês e eles se atualizarem. um exemplo abaixo: Utilizando a função acima o resultado será (exemplo); Valor Atual: 10 Saque: 10 Deposito: 10 Janeiro - Resultado: 11 Fevereiro - Resultado: 12.1 Março - Resultado: 13.3 Abril - Resultado: 14.6 Maio - Resultado: 16.1 (Caso eu alterar os valores de SAQUE e DEPOSITO a partir desse resultado os demais abaixo, atualizam pois o resultado final será outro, e o mês abaixo calcula conforme o resultado final desse mês.). Junho - Resultado: 17.7 Julho - Resultado: 19.4 Agosto - Resultado: 21.4 Setembro - Resultado: 23.5 Outubro - Resultado: 25.9 Novembro - Resultado: 28.5 Dezembro - Resultado: 31.3 Cada mês teria seu Valor de SAQUE E DEPOSITO, porem os resultados finais tem que se encontrar. O resultado final do mes de janeiro é o valoratual para o mês de fevereiro e assim vai... é dificil explicar, porem ao entender fica mais facil. Eu não faço ideia como fazer. Obrigado, se tiver ficado muito confuso não precisa quebrar a cabeça pra tentar entender não kkkk Obrigado!
  7. Olá, como vão vcs? Bom estou editando um sistema open source chamado attendize (https://www.attendize.com/), fiz varias implementações, traduções e entre outras coisas... trabalhei muito nesse código e estou quase no fim... onde estou com um problema, quero implementar um gateway de pagamento via pagseguro... mas o detalhe é, não estou entendendo o código, alguém poderia me ajudar ? caso quiserem baixar o sistema completo que como citei é open source, só entrar no site... mas o código que não estou entendendo vou deixa-lo abaixo... app/Http/Controllers/EventCheckoutController.php <?php namespace App\Http\Controllers; use App\Events\OrderCompletedEvent; use App\Models\Affiliate; use App\Models\Attendee; use App\Models\Event; use App\Models\EventStats; use App\Models\Order; use App\Models\OrderItem; use App\Models\QuestionAnswer; use App\Models\ReservedTickets; use App\Models\Ticket; use Carbon\Carbon; use Cookie; use DB; use Illuminate\Http\Request; use Log; use Omnipay; use PDF; use PhpSpec\Exception\Exception; use Validator; class EventCheckoutController extends Controller { /** * Is the checkout in an embedded Iframe? * * @var bool */ protected $is_embedded; /** * EventCheckoutController constructor. * @param Request $request */ public function __construct(Request $request) { /* * See if the checkout is being called from an embedded iframe. */ $this->is_embedded = $request->get('is_embedded') == '1'; } /** * Validate a ticket request. If successful reserve the tickets and redirect to checkout * * @param Request $request * @param $event_id * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse */ public function postValidateTickets(Request $request, $event_id) { /* * Order expires after X min */ $order_expires_time = Carbon::now()->addMinutes(config('attendize.checkout_timeout_after')); $event = Event::findOrFail($event_id); if (!$request->has('tickets')) { return response()->json([ 'status' => 'error', 'message' => 'No tickets selected', ]); } $ticket_ids = $request->get('tickets'); /* * Remove any tickets the user has reserved */ ReservedTickets::where('session_id', '=', session()->getId())->delete(); /* * Go though the selected tickets and check if they're available * , tot up the price and reserve them to prevent over selling. */ $validation_rules = []; $validation_messages = []; $tickets = []; $order_total = 0; $total_ticket_quantity = 0; $booking_fee = 0; $organiser_booking_fee = 0; $quantity_available_validation_rules = []; foreach ($ticket_ids as $ticket_id) { $current_ticket_quantity = (int)$request->get('ticket_' . $ticket_id); if ($current_ticket_quantity < 1) { continue; } $total_ticket_quantity = $total_ticket_quantity + $current_ticket_quantity; $ticket = Ticket::find($ticket_id); $ticket_quantity_remaining = $ticket->quantity_remaining; $max_per_person = min($ticket_quantity_remaining, $ticket->max_per_person); $quantity_available_validation_rules['ticket_' . $ticket_id] = [ 'numeric', 'min:' . $ticket->min_per_person, 'max:' . $max_per_person ]; $quantity_available_validation_messages = [ 'ticket_' . $ticket_id . '.max' => 'The maximum number of tickets you can register is ' . $ticket_quantity_remaining, 'ticket_' . $ticket_id . '.min' => 'You must select at least ' . $ticket->min_per_person . ' tickets.', ]; $validator = Validator::make(['ticket_' . $ticket_id => (int)$request->get('ticket_' . $ticket_id)], $quantity_available_validation_rules, $quantity_available_validation_messages); if ($validator->fails()) { return response()->json([ 'status' => 'error', 'messages' => $validator->messages()->toArray(), ]); } $order_total = $order_total + ($current_ticket_quantity * $ticket->price); $booking_fee = $booking_fee + ($current_ticket_quantity * $ticket->booking_fee); $organiser_booking_fee = $organiser_booking_fee + ($current_ticket_quantity * $ticket->organiser_booking_fee); $tickets[] = [ 'ticket' => $ticket, 'qty' => $current_ticket_quantity, 'price' => ($current_ticket_quantity * $ticket->price), 'booking_fee' => ($current_ticket_quantity * $ticket->booking_fee), 'organiser_booking_fee' => ($current_ticket_quantity * $ticket->organiser_booking_fee), 'full_price' => $ticket->price + $ticket->total_booking_fee, ]; /* * Reserve the tickets for X amount of minutes */ $reservedTickets = new ReservedTickets(); $reservedTickets->ticket_id = $ticket_id; $reservedTickets->event_id = $event_id; $reservedTickets->quantity_reserved = $current_ticket_quantity; $reservedTickets->expires = $order_expires_time; $reservedTickets->session_id = session()->getId(); $reservedTickets->save(); for ($i = 0; $i < $current_ticket_quantity; $i++) { /* * Create our validation rules here */ $validation_rules['ticket_holder_first_name.' . $i . '.' . $ticket_id] = ['required']; $validation_rules['ticket_holder_last_name.' . $i . '.' . $ticket_id] = ['required']; $validation_rules['ticket_holder_email.' . $i . '.' . $ticket_id] = ['required', 'email']; $validation_messages['ticket_holder_first_name.' . $i . '.' . $ticket_id . '.required'] = 'Ticket holder ' . ($i + 1) . '\'s first name is required'; $validation_messages['ticket_holder_last_name.' . $i . '.' . $ticket_id . '.required'] = 'Ticket holder ' . ($i + 1) . '\'s last name is required'; $validation_messages['ticket_holder_email.' . $i . '.' . $ticket_id . '.required'] = 'Ticket holder ' . ($i + 1) . '\'s email is required'; $validation_messages['ticket_holder_email.' . $i . '.' . $ticket_id . '.email'] = 'Ticket holder ' . ($i + 1) . '\'s email appears to be invalid'; /* * Validation rules for custom questions */ foreach ($ticket->questions as $question) { if ($question->is_required && $question->is_enabled) { $validation_rules['ticket_holder_questions.' . $ticket_id . '.' . $i . '.' . $question->id] = ['required']; $validation_messages['ticket_holder_questions.' . $ticket_id . '.' . $i . '.' . $question->id . '.required'] = "This question is required"; } } } } if (empty($tickets)) { return response()->json([ 'status' => 'error', 'message' => 'No tickets selected.', ]); } /* * The 'ticket_order_{event_id}' session stores everything we need to complete the transaction. */ session()->set('ticket_order_' . $event->id, [ 'validation_rules' => $validation_rules, 'validation_messages' => $validation_messages, 'event_id' => $event->id, 'tickets' => $tickets, 'total_ticket_quantity' => $total_ticket_quantity, 'order_started' => time(), 'expires' => $order_expires_time, 'reserved_tickets_id' => $reservedTickets->id, 'order_total' => $order_total, 'booking_fee' => $booking_fee, 'organiser_booking_fee' => $organiser_booking_fee, 'total_booking_fee' => $booking_fee + $organiser_booking_fee, 'order_requires_payment' => (ceil($order_total) == 0) ? false : true, 'account_id' => $event->account->id, 'affiliate_referral' => Cookie::get('affiliate_' . $event_id), 'account_payment_gateway' => count($event->account->active_payment_gateway) ? $event->account->active_payment_gateway : false, 'payment_gateway' => count($event->account->active_payment_gateway) ? $event->account->active_payment_gateway->payment_gateway : false, ]); /* * If we're this far assume everything is OK and redirect them * to the the checkout page. */ if ($request->ajax()) { return response()->json([ 'status' => 'success', 'redirectUrl' => route('showEventCheckout', [ 'event_id' => $event_id, 'is_embedded' => $this->is_embedded, ]) . '#order_form', ]); } /* * Maybe display something prettier than this? */ exit('Please enable Javascript in your browser.'); } /** * Show the checkout page * * @param Request $request * @param $event_id * @return \Illuminate\Http\RedirectResponse|\Illuminate\View\View */ public function showEventCheckout(Request $request, $event_id) { $order_session = session()->get('ticket_order_' . $event_id); if (!$order_session || $order_session['expires'] < Carbon::now()) { $route_name = $this->is_embedded ? 'showEmbeddedEventPage' : 'showEventPage'; return redirect()->route($route_name, ['event_id' => $event_id]); } $secondsToExpire = Carbon::now()->diffInSeconds($order_session['expires']); $data = $order_session + [ 'event' => Event::findorFail($order_session['event_id']), 'secondsToExpire' => $secondsToExpire, 'is_embedded' => $this->is_embedded, ]; if ($this->is_embedded) { return view('Public.ViewEvent.Embedded.EventPageCheckout', $data); } return view('Public.ViewEvent.EventPageCheckout', $data); } /** * Create the order, handle payment, update stats, fire off email jobs then redirect user * * @param Request $request * @param $event_id * @return \Illuminate\Http\JsonResponse */ public function postCreateOrder(Request $request, $event_id) { /* * If there's no session kill the request and redirect back to the event homepage. */ if (!session()->get('ticket_order_' . $event_id)) { return response()->json([ 'status' => 'error', 'message' => 'Your session has expired.', 'redirectUrl' => route('showEventPage', [ 'event_id' => $event_id, ]) ]); } $event = Event::findOrFail($event_id); $order = new Order; $ticket_order = session()->get('ticket_order_' . $event_id); $validation_rules = $ticket_order['validation_rules']; $validation_messages = $ticket_order['validation_messages']; $order->rules = $order->rules + $validation_rules; $order->messages = $order->messages + $validation_messages; if (!$order->validate($request->all())) { return response()->json([ 'status' => 'error', 'messages' => $order->errors(), ]); } /* * Add the request data to a session in case payment is required off-site */ session()->push('ticket_order_' . $event_id . '.request_data', $request->except(['card-number', 'card-cvc'])); /* * Begin payment attempt before creating the attendees etc. * */ if ($ticket_order['order_requires_payment']) { /* * Check if the user has chosen to pay offline * and if they are allowed */ if ($request->get('pay_offline') && $event->enable_offline_payments) { return $this->completeOrder($event_id); } try { $gateway = Omnipay::create($ticket_order['payment_gateway']->name); $gateway->initialize($ticket_order['account_payment_gateway']->config + [ 'testMode' => config('attendize.enable_test_payments'), ]); $transaction_data = [ 'amount' => ($ticket_order['order_total'] + $ticket_order['organiser_booking_fee']), 'currency' => $event->currency->code, 'description' => 'Order for customer: ' . $request->get('order_email'), ]; switch ($ticket_order['payment_gateway']->id) { case config('attendize.payment_gateway_paypal'): case config('attendize.payment_gateway_coinbase'): $transaction_data += [ 'cancelUrl' => route('showEventCheckoutPaymentReturn', [ 'event_id' => $event_id, 'is_payment_cancelled' => 1 ]), 'returnUrl' => route('showEventCheckoutPaymentReturn', [ 'event_id' => $event_id, 'is_payment_successful' => 1 ]), 'brandName' => isset($ticket_order['account_payment_gateway']->config['brandingName']) ? $ticket_order['account_payment_gateway']->config['brandingName'] : $event->organiser->name ]; break; case config('attendize.payment_gateway_stripe'): $token = $request->get('stripeToken'); $transaction_data += [ 'token' => $token, ]; break; case config('attendize.payment_gateway_migs'): $transaction_data += [ 'transactionId' => $event_id . date('YmdHis'), // TODO: Where to generate transaction id? 'returnUrl' => route('showEventCheckoutPaymentReturn', [ 'event_id' => $event_id, 'is_payment_successful' => 1 ]), ]; // Order description in MIGS is only 34 characters long; so we need a short description $transaction_data['description'] = "Ticket sales " . $transaction_data['transactionId']; break; default: Log::error('No payment gateway configured.'); return repsonse()->json([ 'status' => 'error', 'message' => 'No payment gateway configured.' ]); break; } $transaction = $gateway->purchase($transaction_data); $response = $transaction->send(); if ($response->isSuccessful()) { session()->push('ticket_order_' . $event_id . '.transaction_id', $response->getTransactionReference()); return $this->completeOrder($event_id); } elseif ($response->isRedirect()) { /* * As we're going off-site for payment we need to store some data in a session so it's available * when we return */ session()->push('ticket_order_' . $event_id . '.transaction_data', $transaction_data); Log::info("Redirect url: " . $response->getRedirectUrl()); $return = [ 'status' => 'success', 'redirectUrl' => $response->getRedirectUrl(), 'message' => 'Redirecting to ' . $ticket_order['payment_gateway']->provider_name ]; // GET method requests should not have redirectData on the JSON return string if($response->getRedirectMethod() == 'POST') { $return['redirectData'] = $response->getRedirectData(); } return response()->json($return); } else { // display error to customer return response()->json([ 'status' => 'error', 'message' => $response->getMessage(), ]); } } catch (\Exeption $e) { Log::error($e); $error = 'Sorry, there was an error processing your payment. Please try again.'; } if ($error) { return response()->json([ 'status' => 'error', 'message' => $error, ]); } } /* * No payment required so go ahead and complete the order */ return $this->completeOrder($event_id); } /** * Attempt to complete a user's payment when they return from * an off-site gateway * * @param Request $request * @param $event_id * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse */ public function showEventCheckoutPaymentReturn(Request $request, $event_id) { if ($request->get('is_payment_cancelled') == '1') { session()->flash('message', 'You cancelled your payment. You may try again.'); return response()->redirectToRoute('showEventCheckout', [ 'event_id' => $event_id, 'is_payment_cancelled' => 1, ]); } $ticket_order = session()->get('ticket_order_' . $event_id); $gateway = Omnipay::create($ticket_order['payment_gateway']->name); $gateway->initialize($ticket_order['account_payment_gateway']->config + [ 'testMode' => config('attendize.enable_test_payments'), ]); $transaction = $gateway->completePurchase($ticket_order['transaction_data'][0]); $response = $transaction->send(); if ($response->isSuccessful()) { session()->push('ticket_order_' . $event_id . '.transaction_id', $response->getTransactionReference()); return $this->completeOrder($event_id, false); } else { session()->flash('message', $response->getMessage()); return response()->redirectToRoute('showEventCheckout', [ 'event_id' => $event_id, 'is_payment_failed' => 1, ]); } } /** * Complete an order * * @param $event_id * @param bool|true $return_json * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse */ public function completeOrder($event_id, $return_json = true) { DB::beginTransaction(); try { $order = new Order(); $ticket_order = session()->get('ticket_order_' . $event_id); $request_data = $ticket_order['request_data'][0]; $event = Event::findOrFail($ticket_order['event_id']); $attendee_increment = 1; $ticket_questions = isset($request_data['ticket_holder_questions']) ? $request_data['ticket_holder_questions'] : []; /* * Create the order */ if (isset($ticket_order['transaction_id'])) { $order->transaction_id = $ticket_order['transaction_id'][0]; } if ($ticket_order['order_requires_payment'] && !isset($request_data['pay_offline'])) { $order->payment_gateway_id = $ticket_order['payment_gateway']->id; } $order->first_name = $request_data['order_first_name']; $order->last_name = $request_data['order_last_name']; $order->email = $request_data['order_email']; $order->order_status_id = isset($request_data['pay_offline']) ? config('attendize.order_awaiting_payment') : config('attendize.order_complete'); $order->amount = $ticket_order['order_total']; $order->booking_fee = $ticket_order['booking_fee']; $order->organiser_booking_fee = $ticket_order['organiser_booking_fee']; $order->discount = 0.00; $order->account_id = $event->account->id; $order->event_id = $ticket_order['event_id']; $order->is_payment_received = isset($request_data['pay_offline']) ? 0 : 1; $order->save(); /* * Update the event sales volume */ $event->increment('sales_volume', $order->amount); $event->increment('organiser_fees_volume', $order->organiser_booking_fee); /* * Update affiliates stats stats */ if ($ticket_order['affiliate_referral']) { $affiliate = Affiliate::where('name', '=', $ticket_order['affiliate_referral']) ->where('event_id', '=', $event_id)->first(); $affiliate->increment('sales_volume', $order->amount + $order->organiser_booking_fee); $affiliate->increment('tickets_sold', $ticket_order['total_ticket_quantity']); } /* * Update the event stats */ $event_stats = EventStats::firstOrNew([ 'event_id' => $event_id, 'date' => DB::raw('CURRENT_DATE'), ]); $event_stats->increment('tickets_sold', $ticket_order['total_ticket_quantity']); if ($ticket_order['order_requires_payment']) { $event_stats->increment('sales_volume', $order->amount); $event_stats->increment('organiser_fees_volume', $order->organiser_booking_fee); } /* * Add the attendees */ foreach ($ticket_order['tickets'] as $attendee_details) { /* * Update ticket's quantity sold */ $ticket = Ticket::findOrFail($attendee_details['ticket']['id']); /* * Update some ticket info */ $ticket->increment('quantity_sold', $attendee_details['qty']); $ticket->increment('sales_volume', ($attendee_details['ticket']['price'] * $attendee_details['qty'])); $ticket->increment('organiser_fees_volume', ($attendee_details['ticket']['organiser_booking_fee'] * $attendee_details['qty'])); /* * Insert order items (for use in generating invoices) */ $orderItem = new OrderItem(); $orderItem->title = $attendee_details['ticket']['title']; $orderItem->quantity = $attendee_details['qty']; $orderItem->order_id = $order->id; $orderItem->unit_price = $attendee_details['ticket']['price']; $orderItem->unit_booking_fee = $attendee_details['ticket']['booking_fee'] + $attendee_details['ticket']['organiser_booking_fee']; $orderItem->save(); /* * Create the attendees */ for ($i = 0; $i < $attendee_details['qty']; $i++) { $attendee = new Attendee(); $attendee->first_name = $request_data["ticket_holder_first_name"][$i][$attendee_details['ticket']['id']]; $attendee->last_name = $request_data["ticket_holder_last_name"][$i][$attendee_details['ticket']['id']]; $attendee->email = $request_data["ticket_holder_email"][$i][$attendee_details['ticket']['id']]; $attendee->event_id = $event_id; $attendee->order_id = $order->id; $attendee->ticket_id = $attendee_details['ticket']['id']; $attendee->account_id = $event->account->id; $attendee->reference_index = $attendee_increment; $attendee->save(); /* * Save the attendee's questions */ foreach ($attendee_details['ticket']->questions as $question) { $ticket_answer = isset($ticket_questions[$attendee_details['ticket']->id][$i][$question->id]) ? $ticket_questions[$attendee_details['ticket']->id][$i][$question->id] : null; if (is_null($ticket_answer)) { continue; } /* * If there are multiple answers to a question then join them with a comma * and treat them as a single answer. */ $ticket_answer = is_array($ticket_answer) ? implode(', ', $ticket_answer) : $ticket_answer; if (!empty($ticket_answer)) { QuestionAnswer::create([ 'answer_text' => $ticket_answer, 'attendee_id' => $attendee->id, 'event_id' => $event->id, 'account_id' => $event->account->id, 'question_id' => $question->id ]); } } /* Keep track of total number of attendees */ $attendee_increment++; } } /* * Kill the session */ session()->forget('ticket_order_' . $event->id); /* * Queue up some tasks - Emails to be sent, PDFs etc. */ Log::info('Firing the event'); event(new OrderCompletedEvent($order)); } catch (Exception $e) { Log::error($e); DB::rollBack(); return response()->json([ 'status' => 'error', 'message' => 'Whoops! There was a problem processing your order. Please try again.' ]); } DB::commit(); if ($return_json) { return response()->json([ 'status' => 'success', 'redirectUrl' => route('showOrderDetails', [ 'is_embedded' => $this->is_embedded, 'order_reference' => $order->order_reference, ]), ]); } return response()->redirectToRoute('showOrderDetails', [ 'is_embedded' => $this->is_embedded, 'order_reference' => $order->order_reference, ]); } /** * Show the order details page * * @param Request $request * @param $order_reference * @return \Illuminate\View\View */ public function showOrderDetails(Request $request, $order_reference) { $order = Order::where('order_reference', '=', $order_reference)->first(); if (!$order) { abort(404); } $data = [ 'order' => $order, 'event' => $order->event, 'tickets' => $order->event->tickets, 'is_embedded' => $this->is_embedded, ]; if ($this->is_embedded) { return view('Public.ViewEvent.Embedded.EventPageViewOrder', $data); } return view('Public.ViewEvent.EventPageViewOrder', $data); } /** * Shows the tickets for an order - either HTML or PDF * * @param Request $request * @param $order_reference * @return \Illuminate\View\View */ public function showOrderTickets(Request $request, $order_reference) { $order = Order::where('order_reference', '=', $order_reference)->first(); if (!$order) { abort(404); } $data = [ 'order' => $order, 'event' => $order->event, 'tickets' => $order->event->tickets, 'attendees' => $order->attendees, 'css' => file_get_contents(public_path('assets/stylesheet/ticket.css')), 'image' => base64_encode(file_get_contents(public_path($order->event->organiser->full_logo_path))), ]; if ($request->get('download') == '1') { return PDF::html('Public.ViewEvent.Partials.PDFTicket', $data, 'Tickets'); } return view('Public.ViewEvent.Partials.PDFTicket', $data); } } nesse arquivo eu tentei edita-lo, mas não obtive exito! /resources/views/ManageAccount/Partials/PaymentGatewayOptions.blade.php <script> $(function() { $('.payment_gateway_options').hide(); $('#gateway_{{$account->payment_gateway_id}}').show(); $('.gateway_selector').on('change', function(e) { $('.payment_gateway_options').hide(); $('#gateway_' + $(this).val()).fadeIn(); }); }); </script> {!! Form::model($account, array('url' => route('postEditAccountPayment'), 'class' => 'ajax ')) !!} <div class="form-group"> {!! Form::label('payment_gateway_id', 'Default Payment Gateway', array('class'=>'control-label ')) !!} {!! Form::select('payment_gateway_id', $payment_gateways, $account->payment_gateway_id, ['class' => 'form-control gateway_selector']) !!} </div> {{--Stripe--}} <section class="payment_gateway_options" id="gateway_{{config('attendize.payment_gateway_stripe')}}"> <h4>Stripe Settings</h4> <div class="row"> <div class="col-md-6"> <div class="form-group"> {!! Form::label('stripe[apiKey]', 'Stripe Secret Key', array('class'=>'control-label ')) !!} {!! Form::text('stripe[apiKey]', $account->getGatewayConfigVal(config('attendize.payment_gateway_stripe'), 'apiKey'),[ 'class'=>'form-control']) !!} </div> </div> <div class="col-md-6"> <div class="form-group"> {!! Form::label('publishableKey', 'Stripe Publishable Key', array('class'=>'control-label ')) !!} {!! Form::text('stripe[publishableKey]', $account->getGatewayConfigVal(config('attendize.payment_gateway_stripe'), 'publishableKey'),[ 'class'=>'form-control']) !!} </div> </div> </div> </section> {{--Paypal--}} <section class="payment_gateway_options" id="gateway_{{config('attendize.payment_gateway_paypal')}}"> <h4>PayPal Settings</h4> <div class="row"> <div class="col-md-6"> <div class="form-group"> {!! Form::label('paypal[username]', 'PayPal Username', array('class'=>'control-label ')) !!} {!! Form::text('paypal[username]', $account->getGatewayConfigVal(config('attendize.payment_gateway_paypal'), 'username'),[ 'class'=>'form-control']) !!} </div> </div> <div class="col-md-6"> <div class="form-group"> {!! Form::label('paypal[password]', 'PayPal Password', ['class'=>'control-label ']) !!} {!! Form::text('paypal[password]', $account->getGatewayConfigVal(config('attendize.payment_gateway_paypal'), 'password'),[ 'class'=>'form-control']) !!} </div> </div> </div> <div class="row"> <div class="col-md-12"> <div class="form-group"> {!! Form::label('paypal[signature]', 'PayPal Signature', array('class'=>'control-label ')) !!} {!! Form::text('paypal[signature]', $account->getGatewayConfigVal(config('attendize.payment_gateway_paypal'), 'signature'),[ 'class'=>'form-control']) !!} </div> </div> </div> <div class="row"> <div class="col-md-12"> <div class="form-group"> {!! Form::label('paypal[brandName]', 'Branding Name', array('class'=>'control-label ')) !!} {!! Form::text('paypal[brandName]', $account->getGatewayConfigVal(config('attendize.payment_gateway_paypal'), 'brandName'),[ 'class'=>'form-control']) !!} <div class="help-block"> This is the name buyers will see when checking out. Leave this blank if you want the event organiser's name to be used. </div> </div> </div> </div> </section> {{--BitPay--}} <section class="payment_gateway_options" id="gateway_{{config('attendize.payment_gateway_bitpay')}}"> <h4>BitPay Settings</h4> <div class="row"> <div class="col-md-12"> <div class="form-group"> {!! Form::label('bitpay[apiKey]', 'BitPay Api Key', array('class'=>'control-label ')) !!} {!! Form::text('bitpay[apiKey]', $account->getGatewayConfigVal(config('attendize.payment_gateway_bitpay'), 'apiKey'),[ 'class'=>'form-control']) !!} </div> </div> </div> </section> {{--Coinbase--}} <section class="payment_gateway_options" id="gateway_{{config('attendize.payment_gateway_coinbase')}}"> <h4>Coinbase Settings</h4> <div class="row"> <div class="col-md-6"> <div class="form-group"> {!! Form::label('coinbase[apiKey]', 'API Key', array('class'=>'control-label ')) !!} {!! Form::text('coinbase[apiKey]', $account->getGatewayConfigVal(config('attendize.payment_gateway_coinbase'), 'apiKey'),[ 'class'=>'form-control']) !!} </div> </div> <div class="col-md-6"> <div class="form-group"> {!! Form::label('coinbase[secret]', 'Secret Code', ['class'=>'control-label ']) !!} {!! Form::text('coinbase[secret]', $account->getGatewayConfigVal(config('attendize.payment_gateway_coinbase'), 'secret'),[ 'class'=>'form-control']) !!} </div> </div> </div> <div class="row"> <div class="col-md-12"> <div class="form-group"> {!! Form::label('coinbase[accountId]', 'Account ID', array('class'=>'control-label ')) !!} {!! Form::text('coinbase[accountId]', $account->getGatewayConfigVal(config('attendize.payment_gateway_coinbase'), 'accountId'),[ 'class'=>'form-control']) !!} </div> </div> </div> {{--Pagseguro--}} <section class="payment_gateway_options" id="gateway_{{config('attendize.payment_gateway_pagseguro')}}"> <h4>Configurações pagseguro</h4> <div class="row"> <div class="col-md-6"> <div class="form-group"> {!! Form::label('pagseguro[appId]', 'APP id', array('class'=>'control-label ')) !!} {!! Form::text('pagseguro[appId]', $account->getGatewayConfigVal(config('attendize.payment_gateway_pagseguro'), 'APP id'),[ 'class'=>'form-control']) !!} </div> </div> <div class="col-md-6"> <div class="form-group"> {!! Form::label('pagseguro[AppKey]', 'AppKey', ['class'=>'control-label ']) !!} {!! Form::text('pagseguro[AppKey]', $account->getGatewayConfigVal(config('attendize.payment_gateway_pagseguro'), 'AppKey'),[ 'class'=>'form-control']) !!} </div> </div> </div> </section> {{--BDO MIGS--}} <section class="payment_gateway_options" id="gateway_{{config('attendize.payment_gateway_migs')}}"> <h4>Mastercard Internet Gateway Service Settings</h4> <div class="row"> <div class="col-md-6"> <div class="form-group"> {!! Form::label('migs[merchantAccessCode]', 'Merchant Access Code', array('class'=>'control-label ')) !!} {!! Form::text('migs[merchantAccessCode]', $account->getGatewayConfigVal(config('attendize.payment_gateway_migs'), 'merchantAccessCode'),[ 'class'=>'form-control']) !!} </div> </div> <div class="col-md-6"> <div class="form-group"> {!! Form::label('migs[merchantId]', 'Merchant ID', ['class'=>'control-label ']) !!} {!! Form::text('migs[merchantId]', $account->getGatewayConfigVal(config('attendize.payment_gateway_migs'), 'merchantId'),[ 'class'=>'form-control']) !!} </div> </div> </div> <div class="row"> <div class="col-md-12"> <div class="form-group"> {!! Form::label('migs[secureHash]', 'Secure Hash Code', array('class'=>'control-label ')) !!} {!! Form::text('migs[secureHash]', $account->getGatewayConfigVal(config('attendize.payment_gateway_migs'), 'secureHash'),[ 'class'=>'form-control']) !!} </div> </div> </div> </section> <div class="row"> <div class="col-md-12"> <div class="panel-footer"> {!! Form::submit('Save Payment Details', ['class' => 'btn btn-success pull-right']) !!} </div> </div> </div> {!! Form::close() !!} estou tentando todos os dias, mas não estou conseguindo... pra terem uma noção estou tentar fazer a implementação do pagseguro desde setembro de 2016... estou recorrendo ao fórum pois não sei mais o que fazer ou á quem recorrer... se for causar muito trabalho a vocês, podem deixar pra lá! att. e Obrigado desde já!
  8. Pitag346

    Audio Streaming

    Olá pessoal, beleza? Estou com um pequeno problema... Tenho um servidor streaming onde toca alguns audios, mas não é sempre que o navegador executa o audio, como assim ? Tipo as vezes eu acesso o site e toca normalmente o que está na tag <audio> ... Mas as vezes eu acesso e não toca... Sei que consigo sanar isso com javascript ou jquery, mas não tenho esse conhecimento. OBS: O problema não é meu servidor pq se eu acessa-lo diretamente ele funciona sem parar em nenhum momento. Meu código html: <audio id="audio" autoplay="autoplay"> <source src="https://streaming.meuservidor.com.br/;" type="audio/mpeg" /> <source src="https://streaming.meuservidor.com.br/stream.ogg" type="audio/ogg" /> </audio> Um detalhe importante, mesmo quando estava com somente 1 source src, acontecia isso, pensei q era culpa da velocidade da conexão mas não é acredito eu. Obrigado amigos.
  9. Pitag346

    Sites Responsivos

    Olá pessoal, tudo bem com vocês ??? Espero que sim... Estou um problema com meu site, tentei montar ele com responsividade, mas não obtive sucesso. Alguém que tenha bastante conhecimento nessa área teria um site de estudos/apostilas para indicar ? Obrigado.
  10. Pitag346

    Sites Responsivos

    @dougtop Obrigado amigo, estudei os links e consegui sucesso com o meu responsivo. agradeço tbm ao amigo @Omar~
  11. Pitag346

    Dúvidas com JSON

    Olá, como vcs estão ? bom, é o seguinte... tenho um site onde quero exibir algumas imagens que estão no iTunes. para eu buscar uma imagem eu utilizo esse link que o iTunes disponibiliza: https://itunes.apple.com/search?term=Justin+Bieber&limit=1 e ele me retorna esse código abaixo: { "resultCount":1, "results": [ {"wrapperType":"track", "kind":"song", "artistId":320569549, "collectionId":1049605561, "trackId":1049605634, "artistName":"Justin Bieber", "collectionName":"Purpose (Deluxe)", "trackName":"Love Yourself", "collectionCensoredName":"Purpose (Deluxe)", "trackCensoredName":"Love Yourself", "artistViewUrl":"https://itunes.apple.com/us/artist/justin-bieber/id320569549?uo=4", "collectionViewUrl":"https://itunes.apple.com/us/album/love-yourself/id1049605561?i=1049605634&uo=4", "trackViewUrl":"https://itunes.apple.com/us/album/love-yourself/id1049605561?i=1049605634&uo=4", "previewUrl":"http://a1268.phobos.apple.com/us/r30/Music69/v4/8d/89/89/8d898987-2771-877f-b06c-27813f13c79f/mzaf_6954744275616470123.plus.aac.p.m4a", "artworkUrl30":"http://is5.mzstatic.com/image/thumb/Music6/v4/0e/38/b4/0e38b405-ae2c-1da4-5959-866f7abb110e/source/30x30bb.jpg", "artworkUrl60":"http://is5.mzstatic.com/image/thumb/Music6/v4/0e/38/b4/0e38b405-ae2c-1da4-5959-866f7abb110e/source/60x60bb.jpg", "artworkUrl100":"http://is5.mzstatic.com/image/thumb/Music6/v4/0e/38/b4/0e38b405-ae2c-1da4-5959-866f7abb110e/source/100x100bb.jpg", "collectionPrice":13.99, "trackPrice":1.29, "releaseDate":"2015-11-13T08:00:00Z", "collectionExplicitness":"notExplicit", "trackExplicitness":"notExplicit", "discCount":1, "discNumber":1, "trackCount":18, "trackNumber":5, "trackTimeMillis":233719, "country":"USA", "currency":"USD", "primaryGenreName":"Pop", "isStreamable":true}] } Gostaria de saber como faço pra exibir somente o link do álbum, a case onde fica o link é: artworkUrl100. espero tenham entendido... Obrigado desde já!
  12. Pitag346

    Inserção e Comparação

    Oi pessoal, Beleza? Preciso de ajuda.... Resumidamente: Eu armazeno varios dados no banco de dados inclusive alguns id's que estão em array... eles são armazenados com virgulas (pelo implode)... ou seja, os id's são armazenados desas forma: (1,2,3,4) Esses ids, eu preciso utilizar um SELECT neles para executar um WHILE ... Completo: Tenho um sistema em php + mysqli... onde 1 grupo de usuários faz upload de arquivos... esse grupo pode escolher quais grupos podem visualizar esse arquivo... podem escolher varios grupos ou apenas 1, ou até nenhum... para isso estou utilizando checkbox com array ... (<input type="checkbox" name="turma[]"/>). Faço o envio via POST e com o explode eu separo com virgulas... Ficando da forma que mencionei lá em cima... (1,2,3,4) mas preciso fazer um select e verificar esse campo que tem esses valores com virgulas... o detalhe que no select preciso verificar se o ID DO GRUPO é um dos que estão dentro da virgula se for faço a exibição ... se não, não é exibido... Obs: como serão varios arquivos enviados será necessário um WHILE ... Não faço ideia como fazer... Se não entenderem oq eu realmente estou precisando... podem estar solicitando que faço o anexo de imagens... Att. desde já, Obrigado!
  13. Pitag346

    Dicas para inserção de dados mysqli

    Olá amigos, tudo bom? Preciso de uma dica/solução para meu projeto... Bom vamos pelo começo: 1. Tenho um sistema de upload de arquivos onde faço o envio e registro no banco de dados o local do arquivo, nome e entre outros... 2. Apenas administradores podem enviar e editar arquivos... 3. Os usuários comuns são divididos em turmas, e em meu projeto existem 5 turmas e 2 períodos. (Manhã e Noite). Bom, o upload e as informações são simples de inserir no banco de dados Uso o mysqli para inserir os dados. Antes do upload tenho um modal onde o administrador informa os dados e envia o arquivo, neste eu quero ter a liberdade de listar esse arquivo somente na turma em que o administrador selecionou nos checkboxs Exemplo: Vou fazer o upload de 1 lista de exercícios do módulo 2, mas apenas as turmas 1 e 2 estão nesse módulo, ou seja o sistema não vai listar NO WHILE esse arquivo para a turma 3, 4 e 5... mas se eu quiser posso liberar para essas turmas quando eu quiser. Ou tbm posso remover das turmas 1 e 2 e apenas liberar para a turma 4... Não faço ideia de como posso armazenar isso no banco de dados... Pensei em fazer os names dos checkbox's com array e depois separando com vírgulas os values, ficando da seguinte forma NO BANCO DE DADOS: Turmas 1, 2, Mas dentro do while na hora de exibição, utilizando explode não consigo fazer a comparação com a turma do usuário (armezado em session)... Espero que tenham entendido e se não for pedir muito, eu entendo muito pouco de php, se puderem me ajudar com exemplos parecidos com o meu problema, ficarei grato! Obrigado desde já ♡ !
  14. Pitag346

    Dicas para inserção de dados mysqli

    Upload.php: //Receber os dados do formulário $tmp_name = $_FILES['arquivo']['tmp_name']; $arquivo = $_FILES['arquivo']['name']; $arquivo_name = $_POST['arquivo_nome']; $arquivo_data = date("Y-m-d H:i:s"); $professor = $_SESSION['usuarioNome']; $user_id = $_SESSION['usuarioId']; $semextensao = explode(".", $arquivo); $materia = $_POST['materia']; $descricao = $_POST['descricao']; // fim dos dados recebidos // $arm = $_POST['armazena']; $turmas = $_POST['turma']; $periodo = $_POST['periodo']; //verifica //Busca $result_usuario = "SELECT * FROM nuvem1 WHERE arquivo = '$arquivo_name' "; $resultado_usuario = mysqli_query($My, $result_usuario); $rowcount = mysqli_num_rows($resultado_usuario); if($rowcount >= 1){ $_SESSION['msg'] = "<div class='alert alert-danger'>Erro ao cadastrar arquivo, nome de exibição já existente!</div>"; exit; } if($arm == true){ $t = "0"; $p = "0"; }else{ foreach ($turmas as $value) { $t .= $value . ', '; } foreach ($periodo as $values) { $p .= $values . ', '; } } //Fazer o Upload move_uploaded_file($tmp_name, "nuvem/{$token}/". $arquivo); // Faço a inserção // $result_arq = "INSERT INTO nuvem1 (arquivo_id, arquivo, descricao, materia, arquivo_data, professor, turmas, periodos, arquivo_link, user_id) VALUES ('', '$arquivo_name', '$descricao', '$materia', '$arquivo_data', '$professor', '$t', '$p', '$link', '$user_id')"; Meu problema é armazenar as turmas, e depois comparar... Segue o formulário em html: <!-- Modal --> <div id="EnviaArq" class="modal fade" role="dialog"> <div class="modal-dialog"> <!-- Modal content--> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal">&times;</button> <h4 class="modal-title">Enviar Arquivo</h4> </div> <form action="#" method="post"> <div class="modal-body"> <input type="file" id="file" name="arquivo" class="custom-file-input"> <div class="progress progress-striped active"> <div class="progress-bar" style="width: 0%"> </div> </div> </br> <span><b>Nome de exibição: </b><input type="text" name="arquivo_nome" placeholder="Ex. Lista 1" /></span> <span><b>Matéria: </b><select name="materia"><option value="1">Matemática</option></select></span> </br> </br> <div class="checkbox in-line"> <label><input type="checkbox" id="atribui" name="armazena"><b>Não Disponibilizar</b></label> </br> <span style="font-size: small; color: red">*Apenas será armazenado nos servidores, e poderá ser liberado a qualquer momento.</span> </br> </br> <span> <b>Turma:</b> </span> <label><input id="t1" type="checkbox" name="turma[]" value="1"> Turma 1</label> <label><input id="t2" type="checkbox" name="turma[]" value="2"> Turma 2</label> <label><input id="t3" type="checkbox" name="turma[]" value="3"> Turma 3</label> <label><input id="t4" type="checkbox" name="turma[]" value="4"> Turma 4</label> <label><input id="t5" type="checkbox" name="turma[]" value="5"> Barro-Branco</label> </br> </br> <span><b>Periodo: </b></span><label><input id="p1" type="checkbox" value="1" name="periodo[]"> Manhã</label> <label><input id="p2" type="checkbox" value="2" name="periodo[]"> Noite</label> </div> </br> <center> <span><b>Descrição</b></span> </br> <label><textarea name="descricao" placeholder="Ex. Lista com 50 Exercícios da Unicamp para estudo" style="margin: 0px; width: 548px; height: 91px;"></textarea></label> </center> </div> <div class="modal-footer"> <button type="submit" class="btn btn-success">Enviar</button> <button type="button" class="btn btn-default" data-dismiss="modal">Fechar</button> </form> </div> </div> </div> </div> e o javascript para envio do mesmo: <script> $(document).on('submit', 'form', function (e) { e.preventDefault(); //Receber os dados $form = $(this); var formdata = new FormData($form[0]); //Criar a conexao com o servidor var request = new XMLHttpRequest(); //Progresso do Upload request.upload.addEventListener('progress', function (e) { var percent = Math.round(e.loaded / e.total * 100); $form.find('.progress-bar').width(percent + '%').html(percent + '%'); }); //Upload completo limpar a barra de progresso request.addEventListener('load', function(e){ $form.find('.progress-bar').addClass('progress-bar-success').html('upload completo...'); //Atualizar a página após o upload completo setTimeout("window.open(self.location, '_self');", 2500); }); //Arquivo responsável em fazer o upload da imagem request.open('post', 'down/upload.php'); request.send(formdata); }); </script> Faltou somente o código da exibição dos arquivos que ainda não desenvolvi mas vou fazer com While o mais certo nessa situação, eu acredito...
  15. Pitag346

    Separação e Identificação de Arrays

    Oi pessoal, beleza? To com um probleminha aqui, eu não faço ideia como posso estar armazenando vários valores e depois fazendo com o php separe eles e verifique. Como assim? Seguinte: tenho um sistema de upload de arquivos que quero separar por turmas e periodos. Exemplo: Meu arquivo, vou enviar para TURMA 1, TURMA 2 E TURMA 3 estou utilizando checkbox para selecionar as turmas com o name em array (Assim: <input type="checkbox" name="turma[]" value="1">)... estou utilizando um forech para salvar no banco de dados com virgulas ficando no registro dessa forma: 1, 2, 3, Agora eu pego a turma do aluno que está armazenada em SESSION e quero comparar com esses números registrados acima ... Exemplo: Se o aluno em questão estiver na turma 1, 2 ou 3, ele vai ver o arquivo ... caso esteja na turma 4, esse arquivo não é exibido pra ele... não consigo fazer, pois, não estou sabendo como separar os valores... e fazer a comparação com os valores... Se alguém puder me ajudar com exemplos, serei muito grato. Obrigado desde já! Se estiver ficado muito confuso, posso estar adicionar imagens para melhor visualização! Att.
  16. Pitag346

    Separação e Identificação de Arrays

    Poderia me explicar como posso estar relacionando as tabelas ?
  17. Eu consigo fazer isso com JavaScript, dessa forma, tente adaptar ao seu gosto. Javascript: (buscar.js) var req; // FUNÇÃO PARA BUSCA O PRODUTO function buscarProduto(valor) { // Verificando Browser if(window.XMLHttpRequest) { req = new XMLHttpRequest(); } else if(window.ActiveXObject) { req = new ActiveXObject("Microsoft.XMLHTTP"); } // Arquivo PHP juntamente com o valor digitado no campo (método GET) var url = "busca.php?produto="+valor; // Chamada do método open para processar a requisição req.open("Get", url, true); // Quando o objeto recebe o retorno, chamamos a seguinte função; req.onreadystatechange = function() { // Exibe a mensagem "Buscando Noticias..." enquanto carrega if(req.readyState == 1) { document.getElementById('resultado').innerHTML = 'Verificando...'; } // Verifica se o Ajax realizou todas as operações corretamente if(req.readyState == 4 && req.status == 200) { // Resposta retornada pelo busca.php var resposta = req.responseText; // Abaixo colocamos a(s) resposta(s) na div resultado document.getElementById('resultado').innerHTML = resposta; } } req.send(null); } PHP: (busca.php) <?php include("../../includes/conn.php"); //include na conexao // Acentuação header("Content-Type: text/html; charset=UTF-8",true); // Recebe o valor enviado $valor = $_GET['produto']; //busca o sql $sql = "SELECT * FROM produtos WHERE nome = '$valor' "; if($result = $conn->query($sql)){ $rowcount = mysqli_num_rows($result); if($rowcount > 1){ echo "<span style='color: red'>Produto já registrado.</span>"; } } HTML: (BuscarProduto.php) <script type="text/javascript" src="buscar.js"></script> <input type="text" placeholder="Produto" class="form-control" id="busca" onkeyup="buscarProduto(this.value)" /> <div id="resultado" class="resultado"></div> Espero que resolva seu problema, att.
  18. Pitag346

    Conexão com mysqli

    Poste o seu código de conexão para mim ver qual o seu problema...
  19. Pitag346

    Retorno do banco de dados com variaveis

    ERA ISSO QUE EU PRECISAVA AMIGO! Muito Obrigado!
  20. Pitag346

    Retorno do banco de dados com variaveis

    Olá pessoal, tudo bem ? Estou com um pequeno problema que não sei como resolver e acredito que seja fácil... Tenho um MODELO DE CONTRATO armazenado em banco de dados, e ao imprimir ele as variáveis contidas nele não estão sendo exibidas. Segue um exemplo abaixo: CONTRATO (ARMAZENADO NO BANCO DE DADOS) Meu código: $busca_contrato = "SELECT * FROM config"; $result00 = $My->query($busca_contrato); $row00 = $result00->fetch_assoc(); $inicio_aulas = $row00["inicio_aulas"]; $fim_aulas2 = $row00["fim_aulas"]; $fim_aulas_barrobranco = $row00["fim_barrobranco"]; $ano = $row00["ano"]; $contrato = $row00['contrato']; Quero que ao exibir o contrato as variáveis acima sejam adicionadas nele, ficando dessa forma: Tento exibir e não consigo, tentei alterar o que está armazenado no banco com {$inicio_aulas} para <?php echo $inicio_aulas ?> ou para <?= $inicio_aulas ?>, mas ainda não obtive exito. Espero que tenham entendio e obrigado desde já!
  21. Você poderia alterar o tipo do input... Ele está setado como TEXT, mude para DATE... Ficando assim: <strong><b><font size="3"> <font color="#000000">Data Vencimento:</font></strong> <input type="date" name="data" size="11" required maxlength="10"/><br><br> Você pode remover o evento, pois o input já vai estar formatado como data... Caso não der certo, tenho um código javascript aqui mas acredito que não será preciso...
  22. Pitag346

    Sistema de pagamento

    O mercado livre tem seu próprio gateway de pagamento que seria o MERCADO PAGO, você teria q desenvolver o próprio tbm... Ou conversar com o gerente do seu banco para te auxiliar na aplicação acredito que eles podem te ajudar... No meu caso eu teria que gerar boletos para cada aluno e identificar eles para saber se está com a mensalidade em dia ou não, conversei com o meu gerente e ele me auxiliou muito. Edit: Você pode verificar também com outros gateways de pagamentos, se tem a tal função que você quer e etc... da uma pesquisa sobre outros alem do pagseguro. Att.
  23. Pitag346

    Retorno do banco de dados com variaveis

    Assim da certo, o problema que eu queria uma forma de pelo painel de administração que eu desenvolvi fazer alterações no contrato... Teria algum jeito sem o contrato estar no banco de dados ??
  24. Pitag346

    Retorno do banco de dados com variaveis

    As variáveis estão sendo retornadas, mas quando eu dou echo no $contrato as variaveis contidas dentro de $contrato não são exibidas... ou melhor, não são reconhecidas...
  25. Pitag346

    Trabalhando com API's

    Olá pessoal, beleza ? estou com um problema em uma solicitação utilizando um API... segue o código (PHP): <?php $apiKey = ''; $summonerName = $_GET['i']; $result = file_get_contents('https://br.api.pvp.net/api/lol/BR/v1.4/summoner/by-name/'.$summonerName.'?api_key=' . $apiKey); $summoner = json_decode($result)->$summonerName; ?> <h3> <image height="64" width="64" src="http://avatar.leagueoflegends.com/br/<?php print $summonerName; ?>.png" valign="middle"/> <?php print $summonerName ?> </h3> <div> Level: <?php print $summoner->summonerLevel; ?> </div> <?php $result = file_get_contents('https://br.api.riotgames.com/api/lol/BR/v1.3/stats/by-summoner/' . $summoner->id . '?api_key=' . $apiKey); $stats = json_decode($result); foreach($stats->playerStatSummaries as $statSummary){ $losses = property_exists($statSummary, 'losses')? $statSummary->losses : '(not available)'; print '<p><b>' . $statSummary->playerStatSummaryType . '</b>: ' . $statSummary->wins . ' wins, ' . $losses . ' losses</p>'; } ?> estou com problema, utilizei esse código mas esta retornando esse erro: Warning: file_get_contents(https://br.api.riotgames.com/api/lol/BR/v1.3/stats/by-summoner/?api_key=************): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in get.php on line 28 não sei oque está dando de errado.... se alguém puder me ajudar com esse API (O api é da riot games desenvolvedora do jogo League of Legends) Obrigado desde já! att
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.