2011-08-24 74 views
0

我已閱讀過類似的主題,但無法完成我的代碼。插入表格行數據onclick複選框PHP和Ajax和MySQL

簡而言之:您勾選了一個複選框,並取消了調用函數的Ajax響應。該功能獲取登錄用戶的ID。一旦我獲得用戶的ID,我就可以使用PHP腳本。

我已經重寫了代碼片段;還沒有嘗試過。可以說這是我希望更接近。

我使用2個腳本,1個用於Ajax,另一個用於PHP。

阿賈克斯:

<html> 
    <head> 
    <script type="text/javascript"> 
    function getLoggedInUser() 
    { 

//IF THERE IS NOTHING CHECKED, THAT IS, STR == 0, THEN REMOVE WHATEVER WAS WRITTEN BEFORE 

    if (str=="") 
     { 
     document.getElementById("txtHint").innerHTML=""; 
     return; 
     } 



    // JUST CHECKING BROWSER COMPATIBILITY ISSUES FIRST 

      if (window.XMLHttpRequest) 
      {// code for IE7+, Firefox, Chrome, Opera, Safari 
       xmlhttp=new XMLHttpRequest(); 
      } 


      else 

      {// code for IE6, IE5 
       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
      } 


// IF THE SERVER HAS THE RESPONSE READY 

      xmlhttp.onreadystatechange=function() 
      { 
      if (xmlhttp.readyState==4 && xmlhttp.status==200) 
      { 

    document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 


     } 
     } 

THEN在具有選中該複選框將其發送到GETLOGGED在FN 用戶ID,而這個函數將其轉發到名爲 INSERT用戶數據的PHP腳本,這將JUST DO那。

xmlhttp.open("GET","insertUserData.php?$user="+str,true); 


    xmlhttp.send(); 
    } 


</script> 
</head> 


<body> 


<?php $user = getUserId();?> 

<form> 
<input type="checkbox" name="asset" value="" onclick="getLoggedInUser($user)" /> I am potentially 

interested in this product or service<br /> 
<div id="txtHint"><b>Note:</b></div> 


</form> 
<br /> 

</body> 
</html> 

======這裏的PHP腳本insertUserData.php ===========

<?php 

$user = $_GET['user']; 


    // But now, as I indicated, we want the data corresponding to that ID 



    $con = mysql_connect('localhost', 'peter', 'abc123'); 
     if (!$con) 
      { 
      die('Could not connect: ' . mysql_error()); 
      } 

     mysql_select_db("ajax_demo", $con); 


     $query = "SELECT name, country 
        FROM profiles 
        WHERE id = '". $user . "'; 

     $result = @mysql_query ($sql); 

     $row = mysql_fetch_array($result, MYSQL_ASSOC); 

     $name = ($row['name']); 
     $country = ($row['country']); 

     mysql_query("INSERT INTO Persons (name, country) 
     VALUES ($name, $country)"); 
     echo 'Your interest has been saved'; 

     mysql_close($con); 
     ?> 

預先感謝您

+1

你的問題到底是什麼?正如你上面已經看到的那樣,你的PHP代碼中存在解析錯誤(你沒有正確關閉查詢字符串引號),並且你在第一個代碼片段中似乎混合了PHP和Javascript。 – Rijk

+0

看來你運行的mysql_query之前的mysql_connect –

+0

我的建議是通過一些基本的PHP/MySQL和Javascript教程工作,並更動的代碼示例一點點。你會很快得到它的竅門。 – Rijk

回答

0

至少這:

$user = getUserId(); 
xmlhttp.open("GET","insertUserData.php?$user="true); 

應改爲:

<? $user = getUserId(); ?> 
xmlhttp.open("GET","insertUserData.php?user=$user", true); 

這不是一個直接回答你的問題,但至少有一個起點,並且確保你通過在你的php文件的頂部添加下面的代碼來啓用錯誤。

ini_set('display_errors', 1); 
error_reporting(E_ALL); 
+0

「我得到了我的A +在我的哈佛大學甲骨文班與Dr.Pappadopoulos「,你爲什麼不給Pappadopoulos博士打個電話? –

+0

自從我在這裏發帖後,我提到了我自己的網站,儘管使用了catcha驗證碼,我仍然在其中進行一系列自動垃圾郵件註冊。我正在記錄所有IP,並與ISP一起進行處理。 – retarded

+0

你確實被推遲了。 –