Дело в том, что у меня есть страница, где отображается мое сообщение пользователя, а в сообщении есть кнопка подключения в форме 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
где ваш Аякса? –
попытайтесь добавить скрытое поле в форме, которую вы создаете в строке с именем «userid», который будет иметь идентификатор в своем значении, которое вы хотите получить в своем action.php с '$ _GET ['userid']' in замените этот '$ _GET ['userid']' на '$ _POST ['userid']'. Вы получите идентификатор пользователя –
Splendid @SandeepGarg никогда не думал об этом. Очень эффективный способ достижения цели. Большое спасибо –