Загрузка данных из формы с использованием jquery в php файл возвращает ноль - PullRequest
2 голосов
/ 25 июля 2010

Когда я передаю значение из формы, используя submit, в файл php, используя load, $ .get или post, и пытаюсь получить данные или загрузить их в целом, как показано ниже, я просто получаю нулевое или неопределенное значение.Кто-нибудь знает, что я делаю неправильно?

iNDEX.HTML `

<script type = "text/javascript">
    $(document).ready(function(){

        $("#NewOrgForm").submit(function(){
            var name = $("#companyname").val();  
            $(".content").load("NewEntry.php",{Name: name});
        });
    });
</script>


<form id="NewOrgForm">
<p> Name: <input type="text" id="companyname" value="" /> </p>
<p> <input type="submit" value="Submit New Entry" id="submit" /> </p>
</form>

NEWENTRY.PHP

<?php

$companyname = $_POST['Name'];
echo $companyname;

?>

`

Ответы [ 3 ]

1 голос
/ 25 июля 2010

Есть ли в вашем HTML элемент, имеющий класс "content"?

Попробуйте использовать функцию обратного вызова, чтобы вы знали, что загрузка действительно выполнялась:

$('#result').load('ajax/test.html', function() {
  alert('Load was performed.');
});

Приведенный выше код взят с сайта jquery (http://api.jquery.com/load/)

ОБНОВЛЕНИЕ: Чем больше я смотрю на это, тем больше я думаю, что вам, вероятно, лучше идти с / .post (http://api.jquery.com/jQuery.post/)

ОБНОВЛЕНИЕ2: Что произойдет, если вы попробуете это:

$(document).ready(function(){
  runOnLoad('content');
});

function runOnLoad(className){

  var name="peter";
  var ajaxData = {"Name": name};
  var url="NewEntry.php";
  var contentToReturn="";

  $.ajax({
     type: "POST",
     url: url,
     data: ajaxData,
     datatype: "html",
     success: function(html) {
       contentToReturn="Success! It returned "+html+"<br>";
       $('div.'+className).html(contentToReturn);
     },
     error: function(html) {
       contentToReturn="Failure! It returned "+html+"<br>";
       $('div.'+className).html(contentToReturn);
     }

  });
  return;
}
1 голос
/ 25 июля 2010

По некоторым комментариям, которые вы разместили, мне кажется, что вы неправильно собираете данные из формы.Вы пытались сделать предупреждение, чтобы увидеть, действительно ли установлена ​​переменная name?Также попробуйте использовать firebug или что-то еще, чтобы увидеть точный URL-адрес, который вы загружаете.

Возможно, попробуйте использовать прямую ссылку на событие для функции и получить поля оттуда вместо абсолютного селектора.Может помочь.

0 голосов
/ 25 июля 2010

Если вы просто делаете POST, он должен выглядеть примерно так:

<script type = "text/javascript">
    $(document).ready(function(){

        $("#NewOrgForm").attr({
            "method": "POST",
            "action": "NewEntry.php"
            }).submit();
    });
</script>

хотя зачем даже использовать для этого jquery, тогда ... просто установите атрибуты метода и действия для элемента формы ...

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