2017-02-17 1 views
0

Дело в том, что у меня есть страница, где отображается мое сообщение пользователя, а в сообщении есть кнопка подключения в форме form input. На каждом из сообщений есть плакаты id. Я хочу, чтобы при нажатии пользователем кнопки подключения идентификатор плаката INSERTED в базе данных.Загрузите идентификатор пользователя в базу данных с помощью Ajax и PHP

РНР

<?php 

$sql = <<<EOF 
SELECT COUNT(*) as count FROM programs; 
EOF; 

$ret = $db->querySingle($sql); 

if ($ret == 0) 
{ 
echo "<div class='no_prog'>No programs currently advertised</div>"; 
} 
else 
{ 
$rsql = <<<EOF 
SELECT * FROM programs ORDER BY id DESC; 
EOF; 


$rret = $db->query($rsql); 

while ($rrow = $rret->fetchArray(SQLITE3_ASSOC)) 
{ 
    $banner = $rrow['banner']; 
    $banner_2 = $rrow['banner_2']; 
    $title = $rrow['sem_title']; 
    $spons = $rrow['sem_spons']; 
    $link = $rrow['sem_link']; 
    $company = $rrow['sem_comp']; 
    $brief = $rrow['sem_brief']; 
    $ad_id = $rrow['userid']; 

    $usql = <<<EOF 
SELECT * FROM User WHERE ID = '$ad_id'; 
EOF; 
    $uret = $db->query($usql); 

    while ($urow = $uret->fetchArray(SQLITE3_ASSOC)) 
    { 
     $ad_img = $urow['image']; 
     $ad_name = $urow['fname']; 


    echo "<div class=\"preview_prog\"> 
     <div class='posted_by'> 
     <p><img src='$ad_img'></p> 
</div> 
<div class='ad_user_info'> 
<div class='ad_info'> 
    <div class='ad_info_img'> 
     <img src='$ad_img'> 
    </div> 
    <div class='ad_info_name'> 
    <p>$ad_name</p> 
</div> 
    <div class='ad_info_conn'> 
    <div class='ad_info_conn_btn'> 
     <div class='conn_img'> 
      <img src='images/connect.png'> 
     </div> 

    //TOP INSERT $ad_id TO DATABASE 

     <form action='connect_exec.php' method='post' id='connect_form' enctype='multipart/form-data'> 
     <input type='submit' name='connect' class='conn_text' id='connect' value='connect +'> 
     <!--<a href='user_connect.php?userid=$ad_id' class='conn_text' name='user_connect'>Connect +</a>--> 
     </form> 
    </div> 

Я попытался положить form="action" во внешнем php файле, но его не получает $ad_id. Скорее всего, потому что это не ссылка

Действие PHP

<?php 
require_once ("db.php"); 
$db = new MyDB(); 

session_start(); 

if (isset($_POST['connect'])) 
{ 
$my_id = $_SESSION['log_id']; 
$ad_id = (int)$_GET['userid']; 
$rand_num = rand(); 

$hsql =<<<EOF 
SELECT COUNT(hash) as count FROM connect WHERE (user_one = '$my_id' AND user_two = '$ad_id') OR (user_one = '$ad_id' AND user_two = '$my_id'); 
EOF; 

$hret = $db->querySingle($hsql); 

if ($hret == 1) 
{ 
    $response = "Your are already connected to '$ad_id'"; 
} 
else 
{ 
    $csql =<<<EOF 
INSERT INTO connect (user_one, user_two, hash) VALUES ('$my_id', '$ad_id', '$rand_num'); 
EOF; 
    $cret = $db->exec($csql); 

    if (!$cret) 
    { 
     $message = "Error connecting to '$ad_id'"; 
    } 
    else 
    { 
     $message = "Successfully Connected to '$ad_id'"; 
    } 
} 
} 
?> 

Пожалуйста, любые советы о том, как я могу загрузить $ad_id в базу данных.

Обратите внимание, что я новичок в PHP и знать немного Ajax

+1

где ваш Аякса? –

+1

попытайтесь добавить скрытое поле в форме, которую вы создаете в строке с именем «userid», который будет иметь идентификатор в своем значении, которое вы хотите получить в своем action.php с '$ _GET ['userid']' in замените этот '$ _GET ['userid']' на '$ _POST ['userid']'. Вы получите идентификатор пользователя –

+0

Splendid @SandeepGarg никогда не думал об этом. Очень эффективный способ достижения цели. Большое спасибо –

ответ

1

попытка добавить скрытое поле в форме, которую вы создаете в строке с именем «USERID», который будет иметь идентификатор в своей стоимости, что вам хочу получить в вашем action.php с $_GET['userid'] вместо этого $_GET['userid'] с $_POST['userid']. Вы получите идентификатор пользователя

<?php 

$sql = <<<EOF 
SELECT COUNT(*) as count FROM programs; 
EOF; 

$ret = $db->querySingle($sql); 

if ($ret == 0) 
{ 
echo "<div class='no_prog'>No programs currently advertised</div>"; 
} 
else 
{ 
$rsql = <<<EOF 
SELECT * FROM programs ORDER BY id DESC; 
EOF; 


$rret = $db->query($rsql); 

while ($rrow = $rret->fetchArray(SQLITE3_ASSOC)) 
{ 
    $banner = $rrow['banner']; 
    $banner_2 = $rrow['banner_2']; 
    $title = $rrow['sem_title']; 
    $spons = $rrow['sem_spons']; 
    $link = $rrow['sem_link']; 
    $company = $rrow['sem_comp']; 
    $brief = $rrow['sem_brief']; 
    $ad_id = $rrow['userid']; 

    $usql = <<<EOF 
SELECT * FROM User WHERE ID = '$ad_id'; 
EOF; 
    $uret = $db->query($usql); 

    while ($urow = $uret->fetchArray(SQLITE3_ASSOC)) 
    { 
     $ad_img = $urow['image']; 
     $ad_name = $urow['fname']; 


    echo "<div class=\"preview_prog\"> 
     <div class='posted_by'> 
     <p><img src='$ad_img'></p> 
</div> 
<div class='ad_user_info'> 
<div class='ad_info'> 
    <div class='ad_info_img'> 
     <img src='$ad_img'> 
    </div> 
    <div class='ad_info_name'> 
    <p>$ad_name</p> 
</div> 
    <div class='ad_info_conn'> 
    <div class='ad_info_conn_btn'> 
     <div class='conn_img'> 
      <img src='images/connect.png'> 
     </div> 

    //TOP INSERT $ad_id TO DATABASE 

     <form action='connect_exec.php' method='post' id='connect_form' enctype='multipart/form-data'> 
     <input type='hidden' name='userid' value='$ad_id'/> 
     <input type='submit' name='connect' class='conn_text' id='connect' value='connect +'> 
     <!--<a href='user_connect.php?userid=$ad_id' class='conn_text' name='user_connect'>Connect +</a>--> 
     </form> 
    </div> 

action.php

<?php 
require_once ("db.php"); 
$db = new MyDB(); 

session_start(); 

if (isset($_POST['connect'])) 
{ 
$my_id = $_SESSION['log_id']; 
$ad_id = (int)$_POST['userid']; 
$rand_num = rand(); 

$hsql =<<<EOF 
SELECT COUNT(hash) as count FROM connect WHERE (user_one = '$my_id' AND user_two = '$ad_id') OR (user_one = '$ad_id' AND user_two = '$my_id'); 
EOF; 

$hret = $db->querySingle($hsql); 

if ($hret == 1) 
{ 
    $response = "Your are already connected to '$ad_id'"; 
} 
else 
{ 
    $csql =<<<EOF 
INSERT INTO connect (user_one, user_two, hash) VALUES ('$my_id', '$ad_id', '$rand_num'); 
EOF; 
    $cret = $db->exec($csql); 

    if (!$cret) 
    { 
     $message = "Error connecting to '$ad_id'"; 
    } 
    else 
    { 
     $message = "Successfully Connected to '$ad_id'"; 
    } 
} 
} 
?> 
Смежные вопросы