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

时间:2015-11-15 12:16:23

标签: php

这是我的用户的姓名和信息:

  

这是我的代码:

  <?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++;
}
?>
  例如,我从下面的图片中选择了一个好友,从出现的列表中可以看出:

enter image description here

并将他的信息发送到第二页:

second page

所有物业都运作到这一步。在下一步中,我想发送所选用户的id_user。如图所示,当前用户的id_user为34。 下面的代码是第二页的所有代码。

问题是我想要id_user(对于这个用户34)到数据库,但我收到以下通知:

  

(!)注意:未定义的索引:第339行的C:\ wamp \ www \ source \ submit_action.php中的id_user

     

第339行:VALUES('$ id',                    '“。$ _POST ['id_user']。”'等等......

        <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 ['submit']))之后,无法识别$ id_user。我认为问题在这里。

2 个答案:

答案 0 :(得分:3)

这是因为您有多个表单,如果您没有将值转发给第二个表单,则该值将被刷新(变为NULL,换句话说它不会重新发送{{ 1}}自动转换为第二种形式)。

首先,您需要在id_user文件的开头添加以下行,在新表单上声明并检索id_user

submit_action.php

所以你的代码看起来像这样:

$id_user = $_POST['id_user'];

接下来,您可以在隐藏输入中传递变量,在表单提交按钮之前添加以下行,使其如下所示:

.....
<div dir="rtl">

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

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

或者您可以直接在语句中传递变量,使其如下所示:

.....
<input type="hidden" name="id_user" value="<?php echo $id_user ?>">

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

etc....

这应该可以解决问题。

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

答案 1 :(得分:0)

$ _ POST [&#39; id_user&#39;]未知,因为它不会以第二种形式发送。这意味着id_user不会发送到块:if(isset($ _ POST [&#39; submit&#39;])){...}所以它是未定义的索引。