首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将选择用户的id_user发送到数据库

将选择用户的id_user发送到数据库
EN

Stack Overflow用户
提问于 2015-11-15 12:16:22
回答 2查看 183关注 0票数 1

以下是我的用户的姓名和信息:

这是我的密码:

代码语言:javascript
运行
复制
  <?php
$id=$fgmembersite->UserID(); 

/* echo "$id"; */


$db_host = 'localhost';
$db_name= 'site';
$db_table= 'tablesite';
$db_user = 'root';
$db_pass = '';


$con = mysql_connect($db_host,$db_user,$db_pass) or die("خطا در اتصال به پايگاه داده");
$selected=mysql_select_db($db_name, $con) or die("خطا در انتخاب پايگاه داده");
mysql_query("SET CHARACTER SET  utf8");

$dbresult=mysql_query("SELECT tablesite.id_user,
                              tablesite.name,
                              tablesite.family,
                              tablesite.username,
                              tablesite.phone_number,
                              tablesite.email
                       FROM  $db_table",$con);
   $i = 1;

                       while($amch=mysql_fetch_assoc($dbresult))

{?>
  <?php

echo "<form name=f1 id='form_$i' method='post' action=submit_action.php accept-charset='UTF-8'>\r\n";
echo'<div dir="rtl">';
echo "نام خدمت دهنده: "."&nbsp&nbsp&nbsp".$amch["name"]." ".$amch["family"]."&nbsp&nbsp&nbsp"."شماره تماس: ".$amch["phone_number"]."&nbsp&nbsp&nbsp"."ایمیل: ".$amch["email"].'<br>';
echo '<input type="hidden" name="id_user" value="' . $amch["id_user"] . '">';
echo '<input type="hidden" name="name" value="' . $amch["name"] . '">';
echo '<input type="hidden" name="family" value="' . $amch["family"] . '">';
echo '<input type="hidden" name="phone_number" value="' . $amch["phone_number"] . '">';
echo '<input type="hidden" name="email" value="' . $amch["email"] . '">';
echo '<input type="submit" name="choose" value="انتخاب مشتری"/>';echo'<hr/>';
echo'<hr/>';
echo'</div>';
echo "</form>\r\n";
    $i++;
}
?>

例如,我从出现的列表中选择了一个你可以在下面的图片中看到的好友:

他的信息发送到第二页:

所有的东西都能用到这一步。在下一步中,我希望发送选定用户的id_user。如图所示,当前用户的id_user为34。低音码是第二页的所有代码。

问题是我希望id_user (对于这个用户34)数据库的位置,但我得到以下通知:

(!)注意:未定义索引: id_user in C:\wamp\www\source\submit_action.php中的第339行 第339行:值('$id','“. $_POST'id_user‘.’‘等等.

代码语言:javascript
运行
复制
        <form name="form5" method="post" action="" >


<div dir="rtl"> 

                    <?php


$username=$fgmembersite->UserNameOfUser();
   $db_host = 'localhost';
   $db_name= 'site';
   $db_table= 'job_list';
   $db_user = 'root';
   $db_pass = '';



$con = mysql_connect($db_host,$db_user,$db_pass) or die("خطا در اتصال به پايگاه داده");
$selected=mysql_select_db($db_name, $con) or die("خطا در انتخاب پايگاه داده");
mysql_query("SET CHARACTER SET  utf8");

$dbresult=mysql_query("SELECT job_list.job_id,
                              job_list.job_name,
                              tablesite.username
                       FROM  $db_table
                       INNER JOIN relation
                       on job_list.job_id=relation.job_id
                       INNER JOIN tablesite
                       on relation.user_id=tablesite.id_user AND tablesite.username='$username'",$con);
echo'* خدمتی که ارائه داده اید: ','<br/>';                     
echo '<select name="job" dir="rtl">';

while($amch=mysql_fetch_assoc($dbresult))
{ 
   echo '<option value="'.$amch['job_id'].'">'.$amch['job_name'].'</option>';
}
echo '</select>'; ?><br/>
</div>      

<div dir="rtl"> 


            <label for='date' >* تاریخ عملیات:</label><br/>
            <?php

echo'<select dir="rtl" name="day">';
for($day=1;$day<=31;$day++)
            {


            echo '<option value="' . $day . '">' . $day . '</option>';

            }
echo'</select>';


echo'<select dir="rtl" name="month">';
for($month=1;$month<=12;$month++)
            {


            echo '<option value="' . $month . '">' . $month . '</option>';

            }
echo'</select>';

            echo'<select dir="rtl" name="year">';
            for($year=1388;$year<=1410;$year++)
            { 
            echo '<option value="' . $year . '">' . $year . '</option>';

            } 

echo'</select>';

?>          


            <br/>
            <label for='price' >* هزینه کار:</label><br/>
            <input type='text'  dir="rtl" name='price' id='price' value='' maxlength="50" placeholder="54000"/>تومان<br/>

        <label for='textaria' >توضیحات:</label><br/>
        <textarea name="textaria" cols="" rows=""></textarea><br/>

<input name="submit" type="submit" value="ثبت عملیات" />

</div>


            <?php
if(isset($_POST['choose']))
{
$id_user =$_POST['id_user'];
$name=$_POST['name'];
$family=$_POST['family'];
$phone_number=$_POST['phone_number'];
$email=$_POST['email'];
echo "$name", " " , "$family", '<br/>' , "$phone_number", '<br/>' , "$email",'<br/>' , "$id_user";
}

?>  

</form>



<?php

if(isset($_POST['submit']))
{ 
$date = $_POST['year'].'-'.$_POST['month'].'-'.$_POST['day'];

$id=$fgmembersite->UserID(); 

$db_host = 'localhost';
$db_name= 'site';
$db_table= 'action';
$db_user = 'root';
$db_pass = '';


$con = mysql_connect($db_host,$db_user,$db_pass) or die("خطا در اتصال به پايگاه داده");

mysql_query("SET NAMES 'utf8'", $con);
mysql_query("SET CHARACTER SET 'utf8'", $con);
mysql_query("SET character_set_connection = 'utf8'", $con);


$selected=mysql_select_db($db_name, $con) or die("خطا در انتخاب پايگاه داده");
 $ins = "INSERT INTO $db_table
         (service_provider_id,customer_id,date,price,job_id,service_provider_comment)
         VALUES ('$id',
                 '" . $_POST['id_user'] . "',
                 '$date',
                 '" . mysql_escape_string($_POST['price']) . "',
                 '" . mysql_escape_string($_POST['job']) . "',
                 '" . mysql_escape_string($_POST['textaria']) . "')";
$saved=mysql_query($ins );
mysql_close($con); 

/*echo '<script language="javascript">';
echo 'alert("عملیات با موفقیت ثبت شد")';
echo '</script>';
echo '<script>window.location.href = "choose_user.php";</script>';
*/

}
?>

在if(isset($_POST))之后,无法识别$id_user。我想问题就在这里。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-15 12:44:04

这是因为您有多个表单,如果不将值转发到第二个表单,则值将被刷新(变成NULL,换句话说,它不会自动将id_user重新发送到第二个表单)。

首先,您需要在新表单上声明和检索id_user,方法是在submit_action.php文件的开头添加以下行:

代码语言:javascript
运行
复制
$id_user = $_POST['id_user'];

所以您的代码将如下所示:

代码语言:javascript
运行
复制
.....
<div dir="rtl">

    <?php
    $id_user = $_POST['id_user'];

    $username = $fgmembersite->UserNameOfUser();
etc....

接下来,您可以在隐藏的输入中传递变量,方法是在表单submit按钮之前添加以下行,如下所示:

代码语言:javascript
运行
复制
.....
<input type="hidden" name="id_user" value="<?php echo $id_user ?>">

<input name="submit" type="submit" value="ثبت عملیات"/>

etc....

也可以在语句中直接传递变量,如下所示:

代码语言:javascript
运行
复制
.....
VALUES ('$id',
                 '" . $id_user . "',
                 '$date',
                 '" . mysql_escape_string($_POST['price']) . "',
etc....

这应该能解决这个问题。

注:与OP聊天后,答案被更新并进一步改进。

票数 3
EN

Stack Overflow用户

发布于 2015-11-15 12:40:42

$_POST‘is _user’是未知的,因为它不与第二个表单一起发送。这意味着id_user不发送到块:if(isset($_POST‘’submit‘)){.},所以它是未定义的索引。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33719559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档