2016-09-24 86 views
1

你好我是PHP和ajax的新手。選擇下拉列表後,單獨的div功能將出現,我必須插入這兩個值。我的意思是選擇的選項,也是在單獨的div輸入數據。我的英語不好。請幫助我的朋友。 預先感謝您我如何添加下拉列表選定值到數據庫?

<p><label>Affiliate Type</label></p> 
<p><select class="inp authInput" id="id_affiliate_type" name="affiliate_type"> 
<option value="" selected="selected" disabled="disabled" style="display: none;">Select</option> 
<option value="I">Individual</option> 
<option value="O">Organisation</option> 
<div id="errorselect"></div> 
</select></p> 
<b button type="submit" class="btn btn-primary" onclick="return sendaccountData();" id="updateaccount" name="updateaccount">Update Account Information</b></button> 

如何將此存儲使用AJAX和PHP的phpmyadmin數據庫..

回答

0

這是非常簡單的。您可以進行ajax調用,並在調用成功時獲取該值並將其插入該DIV。

您將需要1個PHP文件,只是爲了檢查數據庫,並給予輸出,例如:在你的頁面select_org_type.php

<?php 
if(!empty($_GET['affiliate_type'])){ 
    //use mysqli commands to connect to database and fetch result and store in $result. 
    header();//This is very important, it will set your output as pure JSON object and javascript will find it easy to integrate 
    echo json_encode($result); 
} 

現在,這裏:select_org_type.php

例,例如你正在使用jQuery(我建議很容易實現ajax調用)

<script type="text/javascript"> 
    var affiliate_type = $('#id_affiliate_type').val(); 
    $('#updateaccount').on('click',function(){ 
     $.get('select_org_type.php',{affiliate_type:affiliate_type},function(data){ 
      $('#errorselect').text(data['column-name']); 
     }); 
    }); 
</script> 

這是我使ajax調用來填充任何選擇選項或將結果賦予任何div。

+1

你好先生,是否有可能沒有json ..?在整個代碼中,我已經使用ajax和php ..你說我已經創建了單獨的php文件,我已經編寫代碼來連接mysql並插入查詢來插入其他文件的數據, –

+0

是的,Ashish也可以沒有json,你可以直接在任何DIV(Dom元素)中插入html代碼。你的輸出應該是html,不要把header作爲application/json。 –

1

您需要實現一個JavaScript偵聽器,以在選擇選項時作出反應。然後在這個監聽器中,您需要發送一個ajax請求到您的服務器,並將所選的選項值作爲post/get變量。在你的服務器上,你需要實現相應的php文件來處理ajax請求。這個php文件必須得到post/get變量(選中的選項值)並將其插入到你的SQL數據庫中。這是一般的想法。

假設你正在使用jQuery,聽者必須是一個JavaScript文件在您的網頁,應該是這樣的:

// react when the select list changes 
$('#id_affiliate_type').on('change', function(e) { 

    // get the selected option value 
    var selected = $(this).find(':selected').text(); // or val(), need to confirm this... 

    // send the ajax request to your server 
    $.ajax({ 

     // url of your php script which insert data into database 
     url: 'your_php_file.php', 

     type: 'get' // or 'post' if you prefer 

     // variables passed to the script 
     data: {selected : selected}, 

     // callback, request is successful 
     success: function(result) { 
      console.log('success ' + result); 
      // do whatever you need to do after the call 
     } 

     // callback, something wrong happened 
     error: function(result) { 
      console.log('error ' + result); 
      // do whatever you need to do after the call 
     } 

     // process completed (success or error) 
     complete: function(result) { 
     } 
    } 
} 

在你的PHP文件(your_php_file.php),您可以訪問「選擇」變量通過呼籲:

$selected = $_GET['selected'] // (or $_POST) 

...然後用它來根據需要修改您的數據庫。

這是一般的想法,上面的代碼只是一般的設計,不是'按原樣'使用,而是作爲一種靈感。

您可以在SO和其他地方找到很多關於在選擇列表上實現on('change')偵聽器的示例,通過變量向服務器發送ajax請求並從這些變量更新PHP中的數據庫。

好運

+0

先生,我有兩個選項,像「組織」和「個人」,onclicking組織「公司」將出現,並輸入公司輸入框中的數據,我必須在數據庫中更新它。我已經完成了事件調用,正如你在代碼中提到的那樣。我已經做了驗證,以便用戶不應該繼續而不選擇該選項。但事情是當我選擇INDIVIDUAL選項,並點擊更新功能,它不允許我在phpmyadmin中更新 –

+0

我們需要看到更多的代碼(服務器和客戶端)和更精確的錯誤消息來幫助你。 – Flo

+0

'$(文件)。在( '準備好',函數(){\t \t \t \t \t \t \t $( 「#id_affiliate_type」)。變化(函數(){\t \t \t \t \t \t \t VAR selected_option = $( '#id_affiliate_type')。val(); if(selected_option ==='O'){$('#id_affiliate_type2')。attr('pk','I')。show(); } if(selected_option ('#id_affiliate_type2')。attr('pk','O')。show(); }})$('#id_affiliate_type')。on('change',function( ){ if(this.value =='O') \t \t \t \t \t \t \t \t // .....................^....... \t \t \t \t \t \t \t \t { \t \t \t \t \t \t \t \t \t $(「#detailcompany」)。show(); \t \t \t \t \t \t \t \t} \t \t \t \t \t \t \t \t其他 \t \t \t \t \t \t \t \t { \t \t \t \t \t \t \t \t \t $(「#detailcompany」)。hide(); \t \t \t \t \t \t \t \t} \t \t \t \t \t \t \t \t}); ' –

1

file1.php

<html> 
<select class="opt"> 
    <option value="option1">option1</option> 
    <option value="option2">option2</option> 
</select> 
<div id="msg"> 
</div> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
<script> 
$(".opt").change(function(){ 
    var data1 = $(".opt").val(); 
    $.ajax({ 
     type:"GET", 
     cache:false, 
     url:"file2.php", 
     data : { foo:data1}, // multiple data sent using ajax 
     success: function (html) { 

      $('#msg').html(html); 
     } 
     }); 
}); 
</script> 
</html> 

file2.php

<?php 
$data=$_GET['foo']; 
if($data=="option1") 
{ 
    echo "selected value is option1"; // add sql operation here if option 1 
} 
else if($data=="option2") 
{ 
    echo "selected value is option2"; // add sql operation here if option2 
} 
?> 

您可以根據下拉file2中選擇顯示的數據。php,

+0

先生,我也正在使網絡聊天盒電子商務的客戶支持,你可以建議我的想法..? –

+0

你可以嘗試一下自己,如果需要糾錯,我可以幫你 – vipz

相關問題