2010-02-02 3 views
0

Мне нужна помощь в том, что я думал о простой отправке проблемы с JQuery, но у меня проблемы.JQuery form submit with PHP

У меня есть форма, # listing_step_1, в которой пользователь сначала выбирает категорию из выпадающего списка. Когда категория выбрана, если пользователь нажимает «Далее», раскрывается раскрывающийся список подкатегорий. Когда выбраны как категория, так и подкатегория, нажатие следующей приведет их к шагу 2 процесса с использованием перенаправления. При представлении форма перезагружает одну страницу с помощью $ _SERVER ['PHP_SELF'].

Я хочу автоподтвердить форму, поэтому для отображения подкатегорий не требуется щелкнуть дальше. Я пытаюсь сделать это в событии onchange, используя JQuery, но следующий код не работает.

$('#item_category').change(function(){ 
    $('#listing_step_1').submit(); 
}); 

Я был бы признателен за любую помощь в этом, поскольку я новичок в создании представления с использованием JQuery и AJAX. Вручную, он работает нормально - то есть нажатие кнопки страницы и обновление страницы PHP. Я думал, просто отправив форму в экземпляр onchange, он перезагрузит и выполнит необходимые действия, но это, похоже, не так.

Код формы:

<form method="post" name="listing_step_1" id="listing_step_1" action="<?php $_SERVER['PHP_SELF'] ?>" enctype="multipart/form-data" <?php if($errormessage != ""){ echo ' style="margin-top: 30px"';}?>> 
    <div class="formField fullwidth"> 
    <label for="item_category">Category *</label> 
    <select id="item_category" name="item_category"> 
     <option value="0">Select category...</option> 
     <?php $cd = new CategoryListing("<option_credits>", "</option>"); ?> 
    </select> 
    </div> 
    <div class="formField fullwidth"> 
    <label for="item_subcategory">Subcategory*</label> 
    <?php if($dropdownlist != "") { ?> 
    <select id="item_subcategory" name="item_subcategory"> 
     <?php echo $dropdownlist; ?> 
    </select> 
    <?php } else { ?> 
    <select id="item_subcategory" name="item_subcategory" disabled="true"> 
     <option value="0">Select subcategory...</option> 
    </select> 
    <?php } ?> 
    </div> 
    <input type="submit" value="Next" id="submit" name="submit" style="width: 100px;" /> 
</form> 

Форма подачи:

if(isset($_POST['submit'])){ 
if($_POST['item_category'] != 0){ 
    $dropdownlist = CategoryListing::getSubCategoryDropdown($_POST['item_category']); 
} 
else { 
    $errormessage = "Please select a category"; 
} 
} 

Jquery:

$(document).ready(function(){ 
     $('#item_category').change(function(){ 
     this.form.submit(); 
    }); 
}); 
+0

Показать больше вашего кода, включая элементы HTML, которые составляют вашу форму. –

ответ

1

Попробуйте вместо этого:

$(function() { 
    $('#item_category').change(function(){ 
    this.form.submit(); 
    }); 
}); 
+0

Форма по-прежнему не представляется с помощью $ ('# item_category'). Change (function() { this.form.submit(); }); – pingu

+0

@pingu - Помогло бы, если бы вы могли разместить html формы, а также –

+0

оригинал, опубликованный, чтобы включить это. – pingu

0

в описании, вы говорите:

У меня есть форма, # listing_stage_1, в которого пользователь выбирает первую гр ...

то в коде вы говорите:

$('#item_category').change(function(){ 
    $('#listing_step_1').submit(); 
}); 

Я полагаю, вы просто используете неправильный селектор ... изменить код для этого:

$('#item_category').change(function(){ 
    $('#listing_stage_1').submit(); 
}); 
+0

жаль, что они оба должны быть шагами - не этап. Ред. – pingu