2010-02-02 89 views
0

我需要幫助,我認爲這將是一個簡單的JQuery表單提交問題,但遇到問題。jquery form用PHP提交

我有一個表單,#listing_step_1,其中用戶首先從下拉列表中選擇一個類別。當一個類別被選擇時,如果用戶點擊「下一個」,則顯示子類別下拉菜單。如果選擇了類別和子類別,則單擊下一步將使用重定向將它們帶到流程的第2步。提交時,表單使用$ _SERVER ['PHP_SELF']重新加載同一頁面。

我想自動提交表單,因此點擊next不需要顯示子類別。我試圖在使用JQuery的onchange事件上做到這一點,但下面的代碼不起作用。

$('#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元素。 – 2010-02-02 04:20:26

回答

1

試試這個:

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

該表格仍然沒有出現提交 $('#item_category')。change(function(){ this.form.submit(); }); – pingu 2010-02-02 04:26:37

+0

@pingu - 如果你可以發佈表格的html,這將有所幫助 – 2010-02-02 04:31:24

+0

original posted已編輯包含此內容。 – pingu 2010-02-02 04:36:36

0

在你的描述,你說:

我有一個表格,#listing_stage_1,在 其中,用戶首先選擇一個C ...

然後在代碼中你說:

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

我想像你只是使用了錯誤的選擇...改變你的代碼如下:

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

對不起,他們應該是一步 - 不是階段。編輯。 – pingu 2010-02-02 04:30:22