2016-12-08 2 views
-2

Я хочу обновить тему и другие поля, добавив несколько предметов, но проблема в том, что она сохраняет только один предмет, который я проверил.Как обновить несколько флажков

Как я могу решить эту проблему?

Ниже мой код:

<?php 
$status = ""; 
if(isset($_POST['new']) && $_POST['new']==1) 
{ 
$host="localhost";//host name 
$username="root"; //database username 
$word="";//database word 
$db_name="tuichk";//database name 
$tbl_name="data"; //table name 
$con=mysqli_connect("$host", "$username", "$word","$db_name")or die("cannot connect");//connection string 
$id=$_REQUEST['id']; 
$name =$_REQUEST['name']; 
$stu_ic = $_REQUEST['stu_ic']; 
$address = $_REQUEST['address']; 
$contact = $_REQUEST['contact']; 
$checkbox1=$_REQUEST['subject']; 
$chk=""; 

$update="update data set name='".$name."', stu_ic='".$stu_ic."', address='".$address."', contact='".$contact."', sub='".$checkbox1."' where id='".$id."'"; 
mysql_query($update) or die(mysql_error()); 
$status = "Record Updated Successfully. </br></br><a href='view.php'>View Updated Record</a>"; 
echo '<p style="color:#FF0000;">'.$status.'</p>'; 
}else { 
?> 

это мой HTML форма

<form name="form" method="post" action=""> 
<input type="hidden" name="new" value="1" /> 
<input name="id" type="hidden" value="<?php echo $row['id'];?>" /> 
<p><input type="text" name="name" placeholder="Enter Name" required value="<?php echo $row['name'];?>" /><input type="text" name="stu_ic" placeholder="Enter Student IC" required value="<?php echo $row['stu_ic'];?>" /></p> 
<p><input type="text" name="address" placeholder="Enter Address" required value="<?php echo $row['address'];?>" /><input type="text" name="contact" placeholder="Enter Contact" required value="<?php echo $row['contact'];?>" /></p> 
<div style="text-align:center"> 
    <div style="width:400px;border-radius:6px;margin:0px auto"> 
<table border="1"> 
    <tr> 
     <td colspan="2">Select Subject:</td> 
    </tr> 
    <tr> 
     <td>Bahasa Melayu</td> 
     <td><input type="checkbox" name="subject" value="Bahasa Melayu"></td> 
    </tr> 
    <tr> 
     <td>English</td> 
     <td><input type="checkbox" name="subject" value="English"></td> 
    </tr> 
    <tr> 
     <td>Mathematics</td> 
     <td><input type="checkbox" name="subject" value="Mathematics"></td> 
    </tr> 
    <tr> 
     <td>Science</td> 
     <td><input type="checkbox" name="subject" value="Science"></td> 
    </tr> 
    <tr> 
     <td>Sejarah</td> 
     <td><input type="checkbox" name="subject" value="Sejarah"></td> 
    </tr> 
    <tr> 
     <td>Geography</td> 
     <td><input type="checkbox" name="subject" value="Geography"></td> 
    </tr> 
    <tr> 
     <td>Additional Mathematics</td> 
     <td><input type="checkbox" name="subject" value="Additional Mathematics"></td> 
    </tr> 
    <tr> 
     <td>Chemistry</td> 
     <td><input type="checkbox" name="subject" value="Chemistry"></td> 
    </tr> 
    <tr> 
     <td>Physics</td> 
     <td><input type="checkbox" name="subject" value="Physics"></td> 
    </tr> 
    <tr> 
     <td>Biology</td> 
     <td><input type="checkbox" name="subject" value="Biology"></td> 
    </tr><tr> 
     <td>Principle Of Accounting</td> 
     <td><input type="checkbox" name="subject" value="Principle Of Accounting"></td> 
    </tr><tr> 
     <td>Ekonomi Asas</td> 
     <td><input type="checkbox" name="subject" value="Ekonomi Asas"></td> 
    </tr><tr> 
     <td>Perdagangan</td> 
     <td><input type="checkbox" name="subject" value="Perdagangan"></td> 
    </tr> 
</table> 
</div> 
</form> 
+0

пожалуйста, вы можете показать нам свой HTML форму? –

+0

Элементы формы должны иметь индикатор массива как часть имени i.e. . Затем в php вы можете получить все значения, отправляемые i.e $ stu_icArr = $ _REQUEST ['stu_ic']; – jeff

+0

обновите вопрос с помощью формы. –

ответ

1

вход HTML должен быть

<input type="checkbox" name="subject[]" value="Subject1"> 
<input type="checkbox" name="subject[]" value="Subject2"> 

В PHP есть много вариантов.

Вариант 1:

сохранить предметы, как струны

$subjects = implode(',', $_POST['subject']); 

извлекаемых в виде строки и преобразовать в массив

$subjects = explode(',', $field); 

Вариант 2: можно сохранить в виде JSON и получить, как JSON и декодировать его ,

+0

сэр, я попробовал этот, но произошла ошибка Неопределенная переменная: поле в & Преобразование строки в строку в – emick

+0

Может видеть ваш код? –

0

это мой код вкл HTML форма:

<?php 
$status = ""; 
if(isset($_POST['new']) && $_POST['new']==1) 
{ 
$host="localhost";//host name 
$username="root"; //database username 
$word="";//database word 
$db_name="tuichk";//database name 
$tbl_name="data"; //table name 
$con=mysqli_connect("$host", "$username", "$word","$db_name")or die("cannot connect");//connection string 
$id=$_REQUEST['id']; 
$name =$_REQUEST['name']; 
$stu_ic = $_REQUEST['stu_ic']; 
$address = $_REQUEST['address']; 
$contact = $_REQUEST['contact']; 
$checkbox1=$_REQUEST['subject']; 
$subjects = implode(',', $_POST['subject']); 
$subjects = explode(',', $field); 
$chk=""; 

$update="update data set name='".$name."', stu_ic='".$stu_ic."', address='".$address."', contact='".$contact."', sub='".$checkbox1."' where id='".$id."'"; 
mysql_query($update) or die(mysql_error()); 
$status = "Record Updated Successfully. </br></br><a href='view.php'>View Updated Record</a>"; 
echo '<p style="color:#FF0000;">'.$status.'</p>'; 
}else { 
?> 
<div> 
<form name="form" method="post" action=""> 
<input type="hidden" name="new" value="1" /> 
<input name="id" type="hidden" value="<?php echo $row['id'];?>" /> 
<p><input type="text" name="name" placeholder="Enter Name" required value="<?php echo $row['name'];?>" /><input type="text" name="stu_ic" placeholder="Enter Student IC" required value="<?php echo $row['stu_ic'];?>" /></p> 
<p><input type="text" name="address" placeholder="Enter Address" required value="<?php echo $row['address'];?>" /><input type="text" name="contact" placeholder="Enter Contact" required value="<?php echo $row['contact'];?>" /></p> 
<div style="text-align:center"> 
    <div style="width:400px;border-radius:6px;margin:0px auto"> 
<table border="1"> 
    <tr> 
     <td colspan="2">Select Subject:</td> 
    </tr> 
    <tr> 
     <td>Bahasa Melayu</td> 
     <td><input type="checkbox" name="subject[]" value="Bahasa Melayu"></td> 
    </tr> 
    <tr> 
     <td>English</td> 
     <td><input type="checkbox" name="subject[]" value="English"></td> 
    </tr> 
    <tr> 
     <td>Mathematics</td> 
     <td><input type="checkbox" name="subject[]" value="Mathematics"></td> 
    </tr> 
    <tr> 
     <td>Science</td> 
     <td><input type="checkbox" name="subject[]" value="Science"></td> 
    </tr> 
    <tr> 
     <td>Sejarah</td> 
     <td><input type="checkbox" name="subject[]" value="Sejarah"></td> 
    </tr> 
    <tr> 
     <td>Geography</td> 
     <td><input type="checkbox" name="subject[]" value="Geography"></td> 
    </tr> 
    <tr> 
     <td>Additional Mathematics</td> 
     <td><input type="checkbox" name="subject[]" value="Additional Mathematics"></td> 
    </tr> 
    <tr> 
     <td>Chemistry</td> 
     <td><input type="checkbox" name="subject[]" value="Chemistry"></td> 
    </tr> 
    <tr> 
     <td>Physics</td> 
     <td><input type="checkbox" name="subject[]" value="Physics"></td> 
    </tr> 
    <tr> 
     <td>Biology</td> 
     <td><input type="checkbox" name="subject[]" value="Biology"></td> 
    </tr><tr> 
     <td>Principle Of Accounting</td> 
     <td><input type="checkbox" name="subject[]" value="Principle Of Accounting"></td> 
    </tr><tr> 
     <td>Ekonomi Asas</td> 
     <td><input type="checkbox" name="subject[]" value="Ekonomi Asas"></td> 
    </tr><tr> 
     <td>Perdagangan</td> 
     <td><input type="checkbox" name="subject[]" value="Perdagangan"></td> 
    </tr> 
</table> 
</div> 
</form> 
<p><input name="submit" type="submit" value="Update" /></p> 
</form> 
<?php } ?> 
+0

сэр, я нашел решение, заменив $ checkbox1 = $ _ REQUEST ['subject']; до $ subject = implode (',', $ _POST ['subject']); u комментарий очень полезный. сэр. да благословит вас Бог – emick

+0

Добро пожаловать :) –

Смежные вопросы