我有一個用戶輸入數據的表單和一個顯示數據庫中所有行的表單。現在,當用戶單擊其中一行旁邊的「編輯」鏈接時,我想將該ID發佈到PHP文件,並將該行中的數據加載到表單中。接收jQuery ajax在PHP中發佈的值
這是我發佈ID(和它的作品)
jQuery('a.edit').on('mousedown', function(){
var id = jQuery(this).attr('data-title');
jQuery.ajax({
url: document.location,
data: {id: id}
});
})
這是我想接收發布ID(不工作)
if(isset($_GET['id'])){
$id = $_GET['id'];
load_data($id);
}
我想我需要刷新頁面?我怎樣才能做到這一點?我也可以刷新表單嗎?
編輯:我仍然認爲這是一個重新加載/刷新問題。該值正在發佈,但我的PHP無法識別,因爲它沒有重新加載。我已經看到人們用jQuery來做這件事,而不是重新加載整個頁面,但我沒有重新創建這個。也許還值得一提的是論文的文件是一個WordPress的插件的一部分。這
所以這是整個代碼(我的插件被稱爲「spielerportraits」)
spielerportraits-admin.php的
<?php
function print_data(){
global $wpdb;
$datatable = $wpdb->get_results(
'SELECT * FROM ' . $wpdb->prefix . 'spielerportraits');
?>
<table id="spieler-output">
<tr>
<td>Name</td>
<td>Geb.datum</td>
</tr>
<?php foreach($datatable as $data) { ?>
<tr>
<td><?php echo $data->name; ?></td>
<td><?php echo $data->gebdatum; ?></td>
<td><a href="" class="edit" data-title="<?php echo $data->id;?>">bearbeiten</a></td> // The edit-link for jQuery
</tr>
<?php }
?>
</table>
<?php
}
if(isset($_GET['id'])){
global $wpdb;
$loaddata = $wpdb->get_row(
'SELECT * FROM '.$wpdb->prefix.'spielerportraits WHERE id = '.$_GET['id']);
}
?>
<form enctype="multipart/form-data" name="spieler-form" action="" method="post">
<table id="spieler-input">
<tr>
<td>Name: </td>
<td><input type="text" name="name" value="<?php if(isset($loaddata)){echo $loaddata->name;}?>" size="40"></td>
</tr>
<tr>
<td>Geburtsdatum: </td>
<td><input type="text" name="gebdatum" value="<?php if(isset($loaddata)){echo $loaddata->gebdatum;}?>" size="40"></td>
</tr>
<tr>
<td class="submit">
<input type="submit" name="submit" value="Hinzufügen" />
</td>
</tr>
</table>
</form>
<?php
print_data();
?>
的JS
jQuery('a.edit').on('mousedown', function(){
var id = jQuery(this).attr('data-title');
jQuery.ajax({
url: document.location,
data: {id: id},
success: function(data){
alert(data['id']); // This does show, but gives me 'undefined'
}
});
});
這是插件如何在WordPress的(spielerportraits.php)初始化:
<?php
add_action('admin_enqueue_scripts', 'spielerportraits_style');
add_action('admin_menu', 'spielerportraits_custom_menu_page');
function spielerportraits_custom_menu_page() {
$page = add_menu_page('Spielerportraits', 'Spielerportraits', 'manage_options', 'spielerportraits/spielerportraits-admin.php', '', ''), 33);
}
function spielerportraits_style() {
wp_enqueue_script('spielerportraits-admin-script', plugins_url('/script.js', __FILE__));
}
global $jal_db_version;
$jal_db_version = "1.0";
function jal_install() {
global $wpdb;
global $jal_db_version;
$table_name = $wpdb->prefix . 'spielerportraits';
$sql = "CREATE TABLE $table_name (
id int NOT NULL AUTO_INCREMENT,
name tinytext NOT NULL,
gebdatum date',
PRIMARY KEY id (id)
);";
if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
add_option("jal_db_version", $jal_db_version);
}
}
register_activation_hook(__FILE__, 'jal_install');
?>
您應該爲ajax-request指定回調。 –
檢查控制檯,你確定請求實際上正在經歷嗎? – tymeJV
是什麼讓你認爲jQuery代碼的作品?你可能會得到警報,這並不意味着阿賈克斯調用正在工作 –