2015-04-23 53 views
0

我正在使用WordPress。觸發第一個ajax的第二個ajax

我有下面的表單1這是一個搜索表單,當我按搜索時,我得到的結果與AJAX。

現在結果行中有一個按鈕或一個鏈接,點擊該按鈕後,應該會觸發另一個AJAX調用,並且應該輸入第一個表單的後期值。

因此,有兩種形式涉及,第二種形式從前一種形式中獲取輸入,並在第一種形式搜索的結果中單擊鏈接時,應該觸發第二種Ajax流程。

第二個ajax不起作用,它只是刷新頁面。

下面是我的第一個搜索表單和第一個表單的搜索結果中按下鏈接時觸發的第二個表單的AJAX和其他代碼的html代碼。

第一形式

<form id="mydispimage" action="" method="post"> 
<select name="category" id="category" style="width:250px; background-color:lightgrey;"> 
<option value="" disabled="disabled" selected="selected" ">Select category</option> 
<option value="Cutie Pie">Cutie Pie</option> 
<option value="Chubby">Chubby</option> 
<option value="Dimples">Dimples</option> 
</select> 
<input type="submit" id="displayimage" name="displayimage" value="Search" style="margin-left:15px; margin-bottom:15px;"> 
</form> 
<div id="myresult" style="margin-bottom:15px; position:relative;"></div> 

第二種形式,這是第一種形式的AJAX功能的,被傳遞與JSON的結果(它有一個按鈕在它稱爲並且當點擊我想要調用另一個Ajax函數並允許用戶爲該行投票)。

當我按下投票沒有返回。

$results = $wpdb->get_results($wpdb->prepare($sql)) or die(mysql_error()); 

if (is_array($results) && count($results) > 0) { 
    $form = ""; 
    foreach($results as $result) { 
     $form.= '<form id="voteform" action="" method="post">'; 
     $form.= "<input name='category' type='hidden' value='$result->category'>"; 
     $form.= "<img src='$result->path' width='150' height='150' >" . '<br /><br />'; 
     $form.= "<input name='id' type='hidden' value='$result->uid'>"; 
     $form.= "<input name='comp' type='hidden' value='$result->competition'>"; 
     $form.= $result->username . '<br />'; 
     $form.= $result->votessum . '<br />'; 
     $form.= "<input style='margin-bottom:30px;' value='vote' name='submit' type='submit'/></form>"; 
    } //end of foreach 
    $response['form'] = $form; 
} 

echo json_encode($response); 
die(); 

投票功能

// register & enqueue a javascript file called globals.js 
wp_register_script('votess', get_stylesheet_directory_uri() . "/js/ajaxinsert.js", array('jquery')); 
wp_enqueue_script('votess'); 

// use wp_localize_script to pass PHP variables into javascript 
wp_localize_script('votess', 'yes', array('ajaxurl' => admin_url('admin-ajax.php'))); 
} 

function votes() 
{ 
    echo json_encode("pakistan zindabad"); 
    die(); 
    $ccc = $_POST['comp']; 
    $cat = $_POST['category']; 
    global $wpdb; 
    $compp = $wpdb->get_var("SELECT competition FROM competition ORDER BY cid DESC LIMIT 1"); 
    $userid = $_POST['id']; 
    $myvote = 1; 
    if ($wpdb->insert('zvotes', array(
     'zvotes' => $myvote, 
     'zcompetition' => $compp, 
     'aid' => $userid 
    )) == false) { 
     wp_die(json_encode('Database Insertion failed')); 
     die(); 
    } 
    else { 
     echo json_encode('your vote was successfully recorded'); 
     die(); 
    } 
} 
+0

我們需要查看處理表單提交的javascripts。 可能是通過ajax提交第二個表單的JavaScript事件處理程序不正確。 – Richard

+0

如果這不能解決問題(例如,表單是無效的HTML),您應該修復語法錯誤並編輯帖子。 – MasterAM

回答

0

好吧,如果你使用Ajax技術,首先你需要其他類型的「發送」按鈕,即不是類型的提交(這將刷新頁面)。第二,如果你想觸發幾個Ajax請求,它們都應該在同一個頁面上,即第二個Ajax請求將在第一個Ajax請求的成功函數中工作。最後,如果你想以json的形式返回數據,不要忘記輸入合適的頭文件。

相關問題