gpt4 book ai didi

php - 如何使用ajax处理多个echo语句

转载 作者:行者123 更新时间:2023-12-01 05:42:44 25 4
gpt4 key购买 nike

我正在 WordPress 上工作,我有一个带有多个 echo 语句的 php 函数,并且使用 ajax 我只能返回一个打印语句。那么我如何使用 ajax 处理多个打印语句,并且在 ajax 端我只需将结果附加到 div 中。下面是代码。谢谢!

php

function display()
{


if(isset($_POST['category'])){

$category = $_POST['category'];
echo '<a href="" style="margin-top:30px !important; position:absolute; z-index:50; font-size:20px;"> Participate </a>';
die();

echo do_shortcode('[ujicountdown id="Photos Contest" expire="2015/04/30 00:00" hide="true" url="" subscr="sdf" recurring="" rectype="second" repeats=""]');
global $wpdb;
$votes = 1;
echo $category. '<br>';
//get current competition value

$comp = $wpdb->get_var("SELECT competition FROM competition ORDER BY cid DESC LIMIT 1");
//echo $comp;
$sql = "SELECT 1user.uid, 1user.username, 1user.competition, 1user.path, 1user.category, Sum(votes.votes) AS votessum FROM 1user LEFT JOIN votes on 1user.uid=votes.uid GROUP BY 1user.uid, 1user.username, 1user.competition, 1user.path, 1user.category HAVING 1user.category = '$category' && 1user.competition = '$comp' ORDER BY votessum";

$results = $wpdb->get_results($wpdb->prepare($sql)) or die(mysql_error());

foreach( $results as $result ) {
echo '<form action="" method="post">';
echo "<input name='category' type='hidden' value='$result->category'>";

echo "<img src='$result->path' width='150' height='150' >" . '<br><br>';
echo "<input name='id' type='hidden' value='$result->uid'>";
echo "<input name='comp' type='hidden' value='$result->competition'>";
echo $result->username.'<br>';

echo $result->votessum.'<br>';
echo "<input style='margin-bottom:30px;' value='vote' name='submit' type='submit'/></form>";

}//end of foreach




}//end of isset
else {echo "<h1 style='font-family:Satisfy,cursive; font-size:normal;background-color:pink;'>"."Please select a category"." </h1>";die();}

}

链接我的 ajax 函数

add_shortcode('showmyimage','showimage');

function showimage(){





// register & enqueue a javascript file called globals.js
wp_register_script( 'displayimg', get_stylesheet_directory_uri() . "/js/ajaxinsert.js", array( 'jquery' ) );
wp_enqueue_script( 'displayimg' );

// use wp_localize_script to pass PHP variables into javascript
wp_localize_script( 'displayimg', 'yes', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) );
}

html

[showmyimage]
<form id="mydispimage" action="" method="post">
<select name="category" id="category" style="width:250px; background-color:lightgrey;">';
<option value="" disabled="disabled" selected="selected" ">Select category</option>';
<option value="Cutie Pie">Cutie Pie</option>';
<option value="Chubby">Chubby</option>';
<option value="Dimples">Dimples</option>';
</select>;
<input type="submit" name="displayimage" value="Search" style="margin-left:15px; margin-bottom:15px;">
</form>
<div id="myresult"></div>

带有ajax代码的jquery文件

jQuery(function ($) {
$("#mydispimage").submit(function (e) { //form is intercepted
e.preventDefault();
alert("hello");
//serialize the form which contains secretcode
var sentdata = $(this).serializeArray();

//Add the additional param to the data
sentdata.push({
name: 'action',
value: 'display'
})

//set sentdata as the data to be sent
$.post(yes.ajaxurl, sentdata, function (res) { //start of funciton
$("#myresult").html(res);

return false;
} //end of function
,
'html');
}); // submit end here
});

最佳答案

我建议您改为返回 JSON 数据:

function display() {

$response = array();

if(isset($_POST['category'])) {

$category = $_POST['category'];
$response['link'] = '<a href="" style="margin-top:30px !important; position:absolute; z-index:50; font-size:20px;"> Participate </a>';

$response['ujicountdown'] = do_shortcode('[ujicountdown id="Photos Contest" expire="2015/04/30 00:00" hide="true" url="" subscr="sdf" recurring="" rectype="second" repeats=""]');

global $wpdb;
$votes = 1;

$response["category"] = $category;


//get current competition value

$comp = $wpdb->get_var("SELECT competition FROM competition ORDER BY cid DESC LIMIT 1");

$sql = "SELECT 1user.uid, 1user.username, 1user.competition, 1user.path, 1user.category, Sum(votes.votes) AS votessum FROM 1user LEFT JOIN votes on 1user.uid=votes.uid GROUP BY 1user.uid, 1user.username, 1user.competition, 1user.path, 1user.category HAVING 1user.category = '$category' && 1user.competition = '$comp' ORDER BY votessum";

$results = $wpdb->get_results($wpdb->prepare($sql)) or die(mysql_error());

if( is_array($results) && count($results) > 0 ) {

$form = "";
foreach( $results as $result ) {

$form .= '<form action="" method="post">';
$form .= "<input name='category' type='hidden' value='$result->category'>";

$form .= "<img src='$result->path' width='150' height='150' >" . '<br><br>';
$form .= "<input name='id' type='hidden' value='$result->uid'>";
$form .= "<input name='comp' type='hidden' value='$result->competition'>";
$form .= $result->username.'<br>';

$form .= $result->votessum.'<br>';
$form .= "<input style='margin-bottom:30px;' value='vote' name='submit' type='submit'/></form>";

}//end of foreach
$response['form'] = $form;
}

echo json_encode($response);
die();

}//end of isset
else {
$respons["status"] = false;
$response["message"] = "<h1 style='font-family:Satisfy,cursive; font-size:normal;background-color:pink;'>"."Please select a category"." </h1>";

echo json_encode($response);
die();
}

}

关于php - 如何使用ajax处理多个echo语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29788647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com