Ich bin kein ausgewiesener JQuery Experte, vielleicht könnt ihr mich ja auf die richtige Spur lotsen.
Ich möchte eine Emailbenachrichtigung umsetzen, mit den Optionen
Bei jeder neuen News (optionsid = 0)
Stündlich (optionsid = 1)
2x täglich (optionsid = 2)
1x täglich (optionsid = 3)
Dazu möchte ich die userid, um welchen "Tag" (tagid) es sich dabei handelt und die optionsid in eine Datenbank schreiben.
Dies soll automatisch via Jquery passieren und ein Request bei jeder Änderung ausgelöst werden.
Der HTML-Bereich:
Spoiler
global $wpdb;
$userid = get_current_user_id();
$schonabonniertabfrage = $wpdb->get_results( "SELECT benachrichtigungsmodus FROM XXXX WHERE tagid ='".$tagid."' AND userid ='".$userid."' AND userid != 0" );
//durchsuchbares array daraus machen
$schonabonniert = array();
foreach ($schonabonniertabfrage as $abonniert)
{
$benachrichtigungsmodus = (int)$abonniert->benachrichtigungsmodus;
array_push($benachrichtigungsmodus, $schonabonniert);
}
//checkboxen anzeigen
echo '<input type="hidden" value="'.$userid.'" id="userid" />';
echo '<input type="hidden" value="'.$tagid.'" id="tagid" />';
//Modus0
echo '<div class="dyncheckboxen">';
echo '<input name="benachrichtigungsoption" id="benachrichtigungsoption" type="checkbox" class ="editbox" value="0"';
if (array_search(0, $schonabonniert) === true)
{
echo 'checked="checked"';
}
echo '><label>Bei jeder neuen News</label></div>';
//Modus 1
echo '<div class="dyncheckboxen">';
echo '<input name="benachrichtigungsoption" id="benachrichtigungsoption" type="checkbox" class ="editbox" value="1"';
if (array_search(1, $schonabonniert) === true)
{
echo 'checked="checked"';
}
echo '><label>Stündlich</label></div>';
//Modus 2
echo '<div class="dyncheckboxen">';
echo '<input name="benachrichtigungsoption" id="benachrichtigungsoption" type="checkbox" class ="editbox" value="2"';
if (array_search(2, $schonabonniert) === true)
{
echo 'checked="checked"';
}
echo '><label>2x täglich</label></div>';
//Modus 3
echo '<div class="dyncheckboxen">';
echo '<input name="benachrichtigungsoption" id="benachrichtigungsoption" type="checkbox" class ="editbox" value="3"';
if (array_search(3, $schonabonniert) === true)
{
echo 'checked="checked"';
}
echo '><label>1x täglich</label>';
echo "</div>";
JS-Bereich
Spoiler
<script type="text/javascript">
$(document).ready(function()
{
$(".dyncheckboxen").click(function().change(function()
{
var tagid = document.getElementById("tagid").value;
var userid = document.getElementById("userid").value;
var data = document.getElementById("benachrichtigungsoption").value;
var dataString = "tagid=" + tagid + "&userid=" + userid + "&value=" + data;
$.ajax({
type: "POST",
url: "update_ajax.php",
data: dataString,
cache: false,
success: function(data)
{
$("#dyncheckboxen").html(data);
},
error: function(data)
{
alert("Es ist ein Fehler aufgetreten!");
}
});
});
});
</script>
PHP-Bereich
(hier fehlt noch die Überprüfung ob schon eingetragen, aber das ist erstmal wayne)
Spoiler
global $wpdb;
$userid = esc_sql($_POST['userid']);
$tagid = esc_sql($_POST['tagid'];
$benachrichtigungsmodus = esc_sql($_POST['value']);
$wpdb->insert(
'XXXXX',
array(
'userid' => $userid,
'tagid' => $tagid,
'benachrichtigungsmodus' => $benachrichtigungsmodus
),
array(
'%d',
'%d',
'%d'
)
);
Der Fehler wird sicherlich im Javascript bereich liegen, leider passiert gar nichts, wenn ich die Checkboxen klicke.
Angezeigt werden sie ohne Fehler
Bin über jeden Tipp sehr dankbar