2014-10-10 3 views
0

Я включил контактную форму на своей странице. На той же странице у меня есть скрипт, который получает цены в зависимости от значения выпадающего списка. Теперь, когда я пытаюсь отправить контактное сообщение, у меня есть конфликт со сценарием по ценам. В основном он пытается запустить его, и я не знаю, почему. Также контактная форма при подаче никогда не работает ... Я просто открываю новую страницу с URL-адресом ..? Message = blablabla Любая идея, что пойдет не так?JQUERY/AJAX Запрос не проходит и конфликты

Я работаю над Laravel 4.2, и поэтому маршрут, который вы видите, перенаправляется на мою функцию php. Вот JSfiddle и вот код PHP:

public function postSendMessage() { 
    echo "<span class=\"alert alert-success\" >Your message has been received. Thanks!</span><br><br>"; 
} 
+0

хорошо вы не отменить отправку формы. – epascarello

+0

Упс, извините ... –

ответ

1

Отменить щелчок поэтому форма не представит

$("button#send").click(function(evt){ 
    evt.preventDefault(); 

Новой ошибки, форма имеет идентификатор контакта, а не класс

data: $('form.contact').serialize(), 

потребности быть

data: $('form#contact').serialize(), 
+0

Если я прав, кнопки не отправляются ... Только входы с типом отправки –

+0

@epascarello, не уверенный в понимании, что вы имеете в виду? Форма должна быть отправлена ​​кликом. Конфликт с сценарием, который тянет цену, называемую retrievePrice. Спасибо – commandantp

+0

Ваш вызов Ajax onclick, так зачем вам нужно подавать форму? Попробуйте добавить код. – epascarello

0

Это то, что я делаю для одной и той же ситуации

//For your drpbox use this code 
    $(document).on("change", "#yorDropBoxId", function(){   
     dropBoxValue=$("#yorDropBoxId").val(); 
     var request = $.ajax({//http://api.jquery.com/jQuery.ajax/ 
         url: "samePagePHPcript.php", 
         type: "POST", 
         data: { 
           ObjEvn:"dropBoxEvent", 
           dropBoxValue: dropBoxValue //You will use $myVar=$_POST["dropBoxValue"] to retrieve the information from javascript        
         }, 
         dataType: "json" 
      }); 
      request.done(function(dataset){ 
      //If you want to retrieve information from PHP sent by JSON. 
       for (var index in dataset){ 
        JsResponse=dataset[index].phpResponse; 
       } 

       if(JsResponse test someting){ 
       "do dometing" 
       control the beheaivor of your HTML elements 
       } 
      }); 
      request.fail(function(jqXHR, textStatus) { 
        alert("Request failed: " + textStatus); 
      }); 

    }); 



    //To submit your form use this code. You must use Prevent default if you are using a button or using a <a> link tag to trigger the evenrmrnt 
    $(document).on("click", "#btn_sendForm", function(e){ 
     e.preventDefault();  
     var dt={ 
       ObjEvn:"FormEvent", 
       input1:$("#txt_input1").val(), 
       input2: $("#txt_input2").val(), 
       input3: $("#txt_input3").val() 
      }; 
     var request = $.ajax({//http://api.jquery.com/jQuery.ajax/ 
          url: "samePagePHPcript.php", 
          type: "POST", 
          data: dt, 
          dataType: "json" 
       }); 
      request.done(function(dataset){ 
       //If you want to retrieve information from PHP send by JSON. 
        for (var index in dataset){ 
         JsResponse=dataset[index].phpResponse; 
        } 

        if(JsResponse test someting){ 
        "do dometing" 
        control the beheaivor of your HTML elements 
        } 
      }); 
      request.fail(function(jqXHR, textStatus) { 
         alert("Request failed: " + textStatus); 
      }); 
    }); 



    //In the samePagePHPcript.php you can do this:You will return your information from PHP using json like this 

    $event = $_POST["ObjEvn"]; 

    if(event==="FormEvent"){//Event to insert in your form 
    $arrToJSON = array(
      "phpResponse"=>"data you want to send to javascript", 
      "asYouWant"=>"<div class=\".class1\">more data</div>"  
      ); 
    echo json_encode(array($arrToJSON)); 

    } 
    elseif(event==="dropBoxEvent"){//Event to your dropbox - if you want 
    $arrToJSON = array(
      "phpResponse"=>"data you want to send to javascript", 
      "asYouWant"=>"<div class=\".class1\">more data</div>"  
      ); 
    echo json_encode(array($arrToJSON)); 


    } 
+0

Какова первая функция Dropbox для точно? Почему сценарий так долго? – commandantp

+0

Я использую этот скрипт на многоязычном сайте. У вас есть две функции: одна для кавычки, другая для кнопки отправки формы. Вы можете упростить его и слить в одном. Мой сайт очень динамичен, поэтому мой Dropbox может отправлять сообщения, чтобы получить информацию и сделать что-то. Форма как та же идея. У меня нет конфликтов с такой техникой. Даже когда я вызываю одну и ту же страницу php для анализа того, какое событие было запущено – zwitterion

Смежные вопросы