这是我的用户的姓名和信息:
这是我的代码:
<?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 "نام خدمت دهنده: "."   ".$amch["name"]." ".$amch["family"]."   "."شماره تماس: ".$amch["phone_number"]."   "."ایمیل: ".$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)到数据库,但我收到以下通知:
(!)注意:未定义的索引:第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。我认为问题在这里。
答案 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;])){...}所以它是未定义的索引。