Используя плагин диалога jquery alerts, как я могу отправить значение в форме функции обратного вызова? Форма в оповещении - PullRequest
1 голос
/ 13 мая 2010

Используя плагин диалогового окна jquery alerts , как мне отправить значение в форме, отображаемой в оповещении, в функцию обратного вызова? Форма находится в оповещении, и после нажатия кнопки ОК происходит обратный вызов.

Это код, который работает, игнорируйте этот код, так как это рабочий пример, он в основном показывает, как форма может быть сериализована. Этот код взят из документации Jquery со страницы .serialise . Проблемный код идет ниже этого.

<?php $moveablecats = mysql_query("SELECT * FROM categories WHERE id != '1'  "); ?><form id="changecategoryForm2"><select id="newflex" name="thecatidichose"> <option value=""></option> <?php while($catrow =mysql_fetch_array($moveablecats)){ ?> <option value="<?php echo "$catrow[id]"; ?>"><?php echo "$catrow[title]"; ?> </option><?php } ?></select>  </form>   <p><tt id="results"></tt></p>


<script>
    function showValues() {
      var str = $("form#changecategoryForm2").serialize();
      $("#results").text(str);
    }
    $(":checkbox, :radio").click(showValues);
    $("select").change(showValues);
    showValues();
</script>

Сравните этот рабочий код с тем, который у меня есть, с помощью подключаемого модуля диалога предупреждений Jquery под следующим кодом. Ниже приведен код по умолчанию для отображения предупреждения.

jPrompt('Type something:', 'Prefilled value', 'Prompt Dialog', function(r) {
    if( r ) alert('You entered ' + r);
});

Это я помещаю рабочий html-код приведенной выше формы в предупреждение, тип предупреждения javascript, называемый приглашением.

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

  • Обратите внимание, что рабочий пример выше это форма называется changecategoryForm 2
  • Проблемная форма ниже называется changecategoryForm

Вот проблемный код.

$(".changecategory").click( function() {
   <?php $moveablecats = mysql_query("SELECT * FROM categories WHERE id != '1'  "); ?>
   var categoryid = $(this).attr("categoryid");
   var itemid = $(this).attr("itemid");
   var itemid2 = $(this).attr("itemid");
   var itemtitle = $(this).attr("itemtitle");
   var parenttag = $(this).parent().get(0).tagName;
   var removediv = "itemid_" +itemid;   
   jAlert(
      'Which category do you want to move <b>'+itemtitle+ '</b> to?<br><?php $moveablecats = mysql_query("SELECT * FROM categories WHERE id != '1'  "); ?><form id="changecategoryForm"><select id="newflex" name="thecatidichose"> <option value=""></option> <?php while($catrow =mysql_fetch_array($moveablecats)){ ?> <option value="<?php echo "$catrow[id]"; ?>"><?php echo "$catrow[title]"; ?> </option><?php } ?></select>  </form>   <p><tt id="results"></tt></p>','Change category', function(r)    {
         // $(parenttag).fadeOut('slow');  
         $("#"+removediv).fadeOut('slow');  

         var newflex = $("#newflex").val();
         alert(newflex); // this shows nothing    
         alert($("#changecategoryForm").serialize());
         alert('categoryid ' + categoryid + ' itemid ' + itemid + '.'); //this shows the variables

         jAlert(''+ itemtitle +' has been successfully moved.', 'Success');
      } // this brace closes function(r)
   ); 
});

1 Ответ

0 голосов
/ 17 августа 2011

Я решил это сам путем рефакторинга своего кода. В любом случае, спасибо за ваше время. Конец.

...