Ошибка 404 AJAX, код работает с прямым PHP / HTML - PullRequest
0 голосов
/ 11 августа 2010

так что мой код работает сам по себе, но я пытаюсь добавить в него немного ajax.Я использую CI, чтобы сделать часть подъема.Я не понимаю, почему выдает 404, если код работает без ajax.

Вот форма:

 <div class="divider" id="contact">
    <p class = "header"><a id="contactheader" name="gocontact">Contact</a></p>
    <div id = "contactform">
     <form method = "post" id="contactform" action="<?php site_url()?>index.php/home/sendemail">
      <div id ="formtitles">
          <p class = "info">You:</p>
          <p class = "info">Me:</p>
          <p class = "info">Subject:</p>
          <p class = "info">Body:</p>
          <input id = "submit" type="submit" value="Send" />
      </div>
      <div id ="formfields">
       <input id="you" type="text" name="you" /><br/>
       <p class = "info">@gmail.com</p>
       <input id ="subject" type="text" name="subject" /><br/>
       <textarea id = "contactbody"></textarea>
      </div>
     </form>
</div>
</div>

.js

    $(document).ready(function() {

 $('#submit').click(function(){

  var contactformdata = {
   you: $('#you').val(),
   subject: $('#subject').val(),
   message: $('#message').val(),
   }

  console.log(you);

  $.ajax({
   url: "trenthauck.com/index.php/home/sendemail",
   type: 'POST',
   data: contactformdata,
   success: function(){
     $('#contactheader').replaceWith("<p class='header'>Thanks</p>");
     $('#contactform').remove();
     $('#contactlink').remove();
     $(document).scrollTop(25);
   }
  });

  return false;
 });
       });

И, наконец, контроллер:

<!--
Name: Trent Hauck
Date: INSERT
File: INSERT
Desc: INSERT
-->

<?php



 class Home extends Controller{

  function index(){

   $this->load->view('home_view');
   return true;
  }

  function sendemail(){
   $to = "trent.hauck@gmail.com";
   $from = $this->input->post('you');
   $subject = $this->input->post('subject');
   $message = $this->input->post('contactbody');
   $message = wordwrap($message, 75);

   $tosend = "From: " . $from . "\nMessage: " . $message;

   mail($to, $subject, $tosend);

   $this->index();

  }


 }

Дополнительный вопрос, если вы все еще читаете.Есть ли способ сделать что-то вроде site_url () из CI в .js, так что мне не нужно вызывать все это.Спасибо

1 Ответ

1 голос
/ 11 августа 2010

Вы забыли http:// в начале вашего параметра Ajax url:

Так что браузер считает , что вы указываете на [site_url]/trenthauck.com/index.php/home/sendemail, что, по всей вероятности, не то, что вы намеревались.

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