Как передать сгенерированные jQuery поля ввода с Ajax в PHP для вставки в MySQL? - PullRequest
0 голосов
/ 16 февраля 2011

Даже несмотря на то, что я попробовал обходные пути, предложенные для аналогичных решений, он все еще дает мне «массив» на принимающем PHP.

Одна вещь, которую я должен упомянуть, отличается от других публикаций, которые яЧто касается этой темы, то в моем случае я использую a и jQuery для заполнения текстовых полей ввода для местоположения и систем.

Способ, которым это должно работать, заключается в том, что возвращаемые данные должны быть вставлены в mySQLдб.Каждое текстовое поле ввода имеет уникальное имя и идентификатор, но я боролся с простой передачей информации из jQuery в PHP.

Итак, у меня есть несколько полей ввода, сгенерированных щелчком, и идея состоит в том, чтобы передать ихназад после подтверждения формы.Эти местоположения и системы не нуждаются в проверке, поэтому URL-адрес функции ajax отличается от действия в исходной форме, которая ее поддерживает, и неизвестно, сколько мест или систем будет вводить пользователь

Я пытался вставить изображение, чтобы показать, но система сказала, что мне нужно больше репутации, чтобы сделать это.Поэтому любые вопросы, пожалуйста, не стесняйтесь задавать

Эта функция должна принимать все входные тексты с классом 'location'

            function updatenewval()
            {
            $("input.locations").each(function(){
            locations[$(this).attr("id")] = $(this).val();
                    $.ajax({
                        type: 'POST',
                        //dataType: 'text/html',
                    url: 'index.php?pag=project&op=list',
                    data: locations
                    });
            });
            }

Эта функция должна принимать все входные тексты с классом 'systems'

                function updatenewvalsys()
                {
                $("input.systems").each(function(){
                systems[$(this).attr("id")] = $(this).val();
                    $.ajax({
                            type: 'POST',
                            //dataType: 'text/html',
                            url: 'index.php?pag=project&op=list',
                            data: systems
                        });

                });
                }

В файле PHP есть <div id="content">Add a Location</div>, вызывающий add_locations с параметрами 0,0 первого местоположения, первая система

            function add_location(num,sys)
            {
            num++;
            sys++;
            $('#content').append("<div id=location"+num+"></div>");
            $('#location'+num).append("<br>Location:&nbsp;<input type='text' name=location"+num+" onchange=\"updatenewval()\" onfocus=\"clearMe(this);\" class='locations' value=Location&nbsp;"+num+"  id=location"+num+" size=31 maxlength=31><br><br><div id='system1' class=\"add\"><a href='javascript:add_system("+num+","+sysorg+");' >Add a System&nbsp;<img src=\"images/plus1.gif\" style=\"border:0px\" alt=\"Add a System\"></a></div>");
            $('#inslocation').remove();
            $('#content').before("<div id='inslocation' class=\"add\"><a href=\"javascript:add_location("+num+","+sysorg+");\" class=\"add\">Add a Location&nbsp;<img src=\"images/plus1.gif\" style=\"border:0px\" alt=\"Add a Location\"></a></div>");        
            }

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

            function add_system(num,sys)
            {
            newsystem=sys+1;
            $('#location'+num).append("<br>System:&nbsp;<input type='text' name=system"+num+newsystem+" class='systems' id=system"+num+newsystem+" value=System&nbsp;"+newsystem+"&nbsp;@&nbsp;Location"+num+" onchange=\"updatenewvalsys()\"  onfocus=\"clearMe(this);\" size=32 maxlength=32><div id='insystem' class=\"add\"><a href='javascript:add_system("+num+","+newsystem+");' >Add a System&nbsp;<img src=\"images/plus1.gif\" style=\"border:0px\" alt=\"Add a System\"></a></div>");
            $('#system1').remove();
            $('#insystem').remove();
            $('#insystem'+num+sys).hide();
            $('#location'+num).append("<div id=insystem"+num+newsystem+" class=\"add\"><a href='javascript:add_system("+num+","+newsystem+");' >Add a System&nbsp;<img src=\"images/plus1.gif\" style=\"border:0px\" alt=\"Add a System\"></a></div>");
            }

Я пробовал упомянутый выше подход, и он, похоже, не проходит мимозначение.В PHP op = list

    if (isset($_POST['locations']))
    {
    parse_str($_POST['locations'], $locations);

                foreach ($locations as $key => $value) {
                echo "$value<br>\n";
                }
        }

Будем весьма благодарны за любые указатели, поскольку это связано с jQuery -> PHP` serialize object.Заранее спасибо!

1 Ответ

1 голос
/ 16 февраля 2011

Я думаю, что когда вы делаете свой пост, вы хотите сделать что-то вроде:

function updatenewval() {

    var locations = $("input.locations").serializeArray();

     $.ajax({
        type: 'POST',
        url: 'index.php?pag=project&op=list',
        data: locations
     });
}

, который будет сериализовать все входные текстовые поля и их значения и передавать их в параметр http data. В этот момент ваш PHP-код должен десериализовать массив ... для его обработки.

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