вставка данных строки таблицы при включенном флажке PHP и Ajax и MySQL - PullRequest
0 голосов
/ 24 августа 2011

Я читал похожие темы, но не смог закончить мой код.

Short is: вы ставите флажок, и это освобождает ответ Ajax, который вызывает функцию. Эта функция получает идентификатор вошедшего в систему пользователя. Как только я получу идентификатор пользователя, у меня все в порядке с PHP-скриптом.

Я переписал фрагмент кода; еще не пробовал. Могу сказать, что это ближе, я надеюсь.

Я использую 2 скрипта, один для Ajax и другой для PHP.

Ajax:

    <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;


        }
      }

Затем, отметив флажок, он отправляется в FN ИДЕНТИФИКАТОР ПОЛЬЗОВАТЕЛЯ, И ЭТА ФУНКЦИЯ, НАПРАВЛЯЕТ ЕГО НА РЫНОК PHP ВСТАВЬТЕ ДАННЫЕ ПОЛЬЗОВАТЕЛЯ, КОТОРЫЕ СДЕЛАЮТ ТОЛЬКО ЭТО.

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 Ответ

0 голосов
/ 24 августа 2011

хотя бы это:

$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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...