Jump to content

Recommended Posts

Hi,

I am new to Javascript and am having a bit of difficulty. On my site, in
order for a member to unsubscribe from an article, they go to
the'Unsubscribe' page where they get a table of all of the articles that
they are subscribed to. There is a table with each article, and a checkbox
next to each article. For each checked checkbox it should send the value of
the checkbox to stop_subscription.php.

I have used the following javascript, I know there is something wrong with
it, but dont know what:

<script type="text/javascript">
function validate() {
for(var i=0; i < document.table11.deletethis[].length; i++){
if(document.table1.deletethis[i].checked)
stop_subscription.php?id="document.form1.deletethis[i].value"
}
}
</script>

Here are other bits of code I think might be relevant:

<?php
// Make table if member has specific injustice subscriptions
$sql = "SELECT i.type, i.title , s.inj_id FROM inj_subscription s, injustices i WHERE s.member_id = '$user' AND i.inj_id = s.inj_id AND s.inj_id IS NOT null" ;
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result) ;
if ($row) {
echo "<div><span>Specific Injustice Subsriptions:</span><br/>" ;
$table_start ='<table width="90%" table name="table2" align="center" cellspacing="0" border="0">
<tr>
<th width="20%">Type</th>
<th width="70%">Title</th>
<th width="10%"></th>
<input type=button name="Unsubscribe" value="Unsubscribe" onClick="validate()" style="font-size:10px"/><p>
</tr>';
echo $table_start;
$rownum = 0;
while($row) {
$rownum++;
$style = rowcolor($rownum);
$table_rows = "<td id=\"td\" align=\"center\" style=\" $style ;padding:5px\" >" .$row['type'] . "</td>";
$table_rows .= "<td id=\"td\" align=\"center\" style=\" $style ;padding:5px\" >" . $row['title']. "</td> \n\t";
$table_rows .= '<td id="td" align="center" style="'.$style.';padding:5px;" >'."\n".'<input type="checkbox" name="deletethis[]" value="'.$row['inj_id'] . '"></td>'."\n\t";
echo "<tr>" . $table_rows . "</tr>";
$row = mysql_fetch_assoc($result) ;
}
echo '</table><Br/></div><br/>';
}
?>

I feel bad just pasting a large slab of code here, but I really have no idea
where Im going wrong!

Cheers,

Paul
Link to comment
https://forums.phpfreaks.com/topic/4111-going-through-a-checkbox-array/
Share on other sites

You don't need the javascript.

The form tag should have "action='stop_subscription.php' " and the checked checkbox values will be posted in the array $_POST['delete_this'].

Store $user in a hidden form field so that too gets posted.

In "stop_subscription.php"

[code]$user = $_POST['user'];
$injIDList = join (',' , $_POST['delete_this'] );[/code]

then

[code]DELETE FROM inj_subscription  WHERE member_id = '$user' AND inj_id IN ($injIDList)[/code]
Ive had a go at changing this around, adding in the form tag, but I dont know if Ive put it in the right place, I feel Im out of my php depth! I Told a friend Id be able to do this for him, thinking it would be easy, but it appears I misjudged it!

<?php
require_once('member_auth.php') ;
include_once('../includes/connect_db.php');
include_once('../includes/functions.php');
include('../header.php');
?>

<?php
//If user has applied for a subsciption, run this code
// If all is OK, then make a subscription
if ($_REQUEST['stop_subscription']==1) {

if (count($_REQUEST['deletethis']) > 0) {
// Split the subscriptions array so we can get the checkbox values.
foreach ($_POST['deletethis'] as $sub=>$value) {
// stop_subscription.php?id="$"
}

}
}
?>

<div id="title1" align="center">
<h3>Unsubscribe</h3>

<?php
// Make table if member has specific injustice subscriptions
$sql = "SELECT i.type, i.title , s.inj_id FROM inj_subscription s, injustices i WHERE s.member_id = '$user' AND i.inj_id = s.inj_id AND s.inj_id IS NOT null" ;
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result) ;
if ($row) {
echo "<div><span>Specific Injustice Subsriptions:</span><br/>" ;
$table_start ='<table width="90%" table name="table2" align="center" cellspacing="0" border="0">
<tr>
<form method="post" action="stop_subscription.php">
<th width="20%">Type</th>
<th width="70%">Title</th>
<th width="10%"></th>
<input type="submit" name="Submit" value="Submit" style="font-size:10px"/><p>
<input type="hidden" name="stop_subscription" value="1"/>
</form>
</tr>';
echo $table_start;

$rownum = 0;
while($row) {
$rownum++;
$style = rowcolor($rownum); $table_rows = "<td id=\"td\" align=\"center\" style=\" $style ;padding:5px\" >" .$row['type'] . "</td>";
$table_rows .= "<td id=\"td\" align=\"center\" style=\" $style ;padding:5px\" >" . $row['title']. "</td> \n\t";
$table_rows .= '<td id="td" align="center" style="'.$style.';padding:5px;" >'."\n".'<input type="checkbox" name="deletethis[]" value="'.$row['inj_id'] . '"></td>'."\n\t";
echo "<tr>" . $table_rows . "</tr>";
$row = mysql_fetch_assoc($result) ;
}
echo '</table><Br/></div><br/>';
}
?>
</div>
<?php
include('../footer.php');
?>
This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.