0
將表單添加到div後,表單無法正確使用ajax jquery,但id沒有發送/發佈到jquery函數,因此消息沒有內容和接收者ID。wp ajax/jquery在插入div內容後無法使用表單
我按下用戶鍵:
<jquery-form formmethod='post'>
<input type="submit" onclick="js_vis_melding_liste(<?php echo $tempid; ?>)" value="<?php echo $userbutton->first_name . ' ' . $userbutton->last_name; ?>"/><br/>
</jquery-form>
開始js函數:
function js_vis_melding_liste(motid) {
jQuery.ajax({
url: my_ajax_script.ajaxurl,
type: 'POST',
data: ({action: 'liste_meldinger', mottaid: motid}), //utfører liste_meldinger funksjonen og mulighet for å hente mottaid via $_POST
success: function(tingting) {
jQuery('#ham-meldinginnboks').html(tingting); //laster inn resulatet av liste_meldinger funksjonen inn i div
jQuery('#ikkevalgtmottakerdiv').hide(); //skjulerdiven
jQuery('#ham-meldinginnboks').show();
var objDiv = document.getElementById("meldinglisten1"); //denne og neste linje sørger for at scrollbar er nederst
objDiv.scrollTop = objDiv.scrollHeight;
}
});
}
;
它使用PHP函數中的functions.php:
function liste_meldinger() {
$mottakid = $_POST['mottaid'];
global $current_user, $wpdb, $valgt_mottaker;
$mottaker = get_user_by('id', $mottakid);
$valgt_mottaker = $mottakid;
$curUserId = get_current_user_id();
$meldingliste =
$wpdb->get_results("
SELECT c.inn AS innh, mottakerid, datom
FROM
(
SELECT innhold AS inn, datom, mottakerid
FROM meldinger
WHERE mottakerid = '$curUserId' and senderid = '$mottakid'
UNION
SELECT innhold AS inn, datom, mottakerid
FROM meldinger
WHERE senderid = '$curUserId' and mottakerid = '$mottakid'
) AS c
ORDER BY datom ASC", ARRAY_A);
$sendinfo = "<p>Liste over meldinger mellom deg og $mottaker->first_name $mottaker->last_name.</p><br/>
<div id='meldinglisten1' style='overflow-y: auto;height: 400px;'>";
foreach ($meldingliste as $meldinger):
$melding = $meldinger['innh'];
$datomo = $meldinger['datom'];
if ($meldinger['mottakerid'] == $curUserId) {
$sendinfo .= $datomo . ' - ' . $mottaker->first_name . ' ' . $mottaker->last_name . ' sa:';
} else {
$sendinfo .= $datomo . ' - ' . $current_user->first_name . ' ' . $current_user->last_name . ' sa:';
}
$sendinfo .= "<div style='border:1px solid #dedede'><p>";
$sendinfo .= $melding;
$sendinfo .= "</p>
</div>
<br/>";
endforeach;
$sendinfo .= '</div>
<div>
<jquery-form name="sendersvarform" id="sendersvarform" onsubmit="js_svar_melding();" >
Skriv ny melding til ' . $mottaker->first_name . ' :<br/>
<textarea name="meldinginnhold" id="meldinginnhold" rows="3" cols="20"></textarea> <br/>
<input type="hidden" name="idmot" id="idmot" value="' . $mottakid . '" />
<input type="submit" name="submit" id="svarmelding" value="Send Svar"/>
</jquery-form>
</div>';
echo $sendinfo;
die();
}
,它顯示消息和一個回覆框,它是id = sendersvarform 緊急回覆,它使用js_svar_meldin G功能:
function js_svar_melding() {
var arr = jQuery('#sendersvarform').serialize();
arr += '&action=svar_melding';
jQuery.ajax({
url: my_ajax_script.ajaxurl,
type: 'POST',
data: arr,
success: function(mld) {
alert(mld);
}
});
return false;
}
;
再次使用PHP函數svar_melding:
function svar_melding() {
global $wpdb, $current_user;
$userID = $current_user->ID;
if (!empty($_POST['idmot']) && !empty($_POST['meldinginnhold'])) {
$sid = $userID;
$mid = $_POST['idmot'];
$mldinnhold = $_POST['meldinginnhold'];
ham_sendmelding($sid, $mid, $mldinnhold);
echo "melding sendt.";
} else {
echo "Ikke alle feltene er fylt inn.";
}
die();
}
好像在$ _ POST [ 'idmot']和$ _ POST [ 'meldinginnhold']是空的,因爲如果我這樣做不使用if!empty然後它會創建一個消息,但它沒有id或內容,它應該已經發布了信息,但它沒有,並且它將頁面重新加載回Home,它不應該因爲在js_svar_melding中返回false,請幫助